Digispark attiny85 и сервомашинка

Zaur.

✩✩✩✩✩✩✩
15 Апр 2020
17
1
Здравствуйте! Я недавно начал програмировать digispark (я новичок) и хотел написать скетч с сервомашинкой пишет ошибка. Помогите пожалуйста

Сама ошибка:
Arduino: 1.8.10 (Windows 8.1), Плата:"Digispark (Default - 16.5mhz)"

C:\Users\Admin\Documents\Arduino\libraries\Servo\src\avr\Servo.cpp: In function 'void __vector_3()':

C:\Users\Admin\Documents\Arduino\libraries\Servo\src\avr\Servo.cpp:82:44: error: cannot convert 'volatile uint8_t* {aka volatile unsigned char*}' to 'volatile uint16_t* {aka volatile unsigned int*}' for argument '2' to 'void handle_interrupts(timer16_Sequence_t, volatile uint16_t*, volatile uint16_t*)'

handle_interrupts(_timer1, &TCNT1, &OCR1A);

^

C:\Users\Admin\Documents\Arduino\libraries\Servo\src\avr\Servo.cpp: In function 'void initISR(timer16_Sequence_t)':

C:\Users\Admin\Documents\Arduino\libraries\Servo\src\avr\Servo.cpp:128:5: error: 'TCCR1A' was not declared in this scope

TCCR1A = 0; // normal counting mode

^

C:\Users\Admin\Documents\Arduino\libraries\Servo\src\avr\Servo.cpp:129:5: error: 'TCCR1B' was not declared in this scope

TCCR1B = _BV(CS11); // set prescaler of 8

^

C:\Users\Admin\Documents\Arduino\libraries\Servo\src\avr\Servo.cpp:136:5: error: 'TIFR1' was not declared in this scope

TIFR1 |= _BV(OCF1A); // clear any pending interrupts;

^

C:\Users\Admin\Documents\Arduino\libraries\Servo\src\avr\Servo.cpp:137:5: error: 'TIMSK1' was not declared in this scope

TIMSK1 |= _BV(OCIE1A) ; // enable the output compare interrupt

^

Несколько библиотек найдено для "Servo.h"
Используется: C:\Users\Admin\Documents\Arduino\libraries\Servo
Не используется: C:\Users\Admin\Desktop\arduino-1.8.10\libraries\Servo
exit status 1
Ошибка компиляции для платы Digispark (Default - 16.5mhz).

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"


Скетч:

#include <Servo.h>

int servoPin = 3;

Servo Servo1;

void setup() {
Servo1.attach(servoPin);
}

void loop(){
Servo1.write(0);
delay(1000);
Servo1.write(90);
delay(1000);
Servo1.write(180);
delay(1000);
}
 

kalobyte

★★★✩✩✩✩
1 Янв 2020
726
146
ну по сути есть функция для работы с шим analogwrite, но там не угол в градусах пишется, а число от 0 до 255
надо посмотреть, какое число соответствует 0 и 180 градусам и там можно пересчитать будет, если тебе именно градусы нужны
 
  • Лойс +1
Реакции: Zaur.