Skocz do zawartości

Attiny13a błąd kompilacki, Arduino IDE


Silver_1

Pomocna odpowiedź

Witam!
kupiłem pare sztuk Attiny13a żeby zrobić prosty sterownik serwomechanizmu, i tak: zrobiłem wszystko tak jak pokazali na filmie na YouTobie, wypalił się ten bootloader, miganie diodą działa, a kiedy chcę wgrać program  do sterowania serwem to wyskakuje mi taki komunikat:

Arduino:1.8.9 (Windows Store 1.8.21.0) (Windows 10), Płytka:"ATtiny13, 9.6 MHz internal osc., BOD 2.7V, Micros disabled"

Opcje projektu zmienione, przeładuj całość
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp: In function 'void TIMER1_COMPA_vect()':

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:82:31: error: 'TCNT1' was not declared in this scope

   handle_interrupts(_timer1, &TCNT1, &OCR1A);

                               ^

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:82:39: error: 'OCR1A' was not declared in this scope

   handle_interrupts(_timer1, &TCNT1, &OCR1A);

                                       ^

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp: In function 'void initISR(timer16_Sequence_t)':

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:128:5: error: 'TCCR1A' was not declared in this scope

     TCCR1A = 0;             // normal counting mode

     ^

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:129:5: error: 'TCCR1B' was not declared in this scope

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

     ^

In file included from c:\program files\windowsapps\arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\avr\io.h:99:0,

                 from c:\program files\windowsapps\arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\avr\interrupt.h:38,

                 from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:22:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:129:18: error: 'CS11' was not declared in this scope

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

                  ^

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:130:5: error: 'TCNT1' was not declared in this scope

     TCNT1 = 0;              // clear the timer count

     ^

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:136:5: error: 'TIFR1' was not declared in this scope

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

     ^

In file included from c:\program files\windowsapps\arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\avr\io.h:99:0,

                 from c:\program files\windowsapps\arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\avr\interrupt.h:38,

                 from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:22:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:136:18: error: 'OCF1A' was not declared in this scope

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

                  ^

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:137:5: error: 'TIMSK1' was not declared in this scope

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

     ^

In file included from c:\program files\windowsapps\arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\avr\io.h:99:0,

                 from c:\program files\windowsapps\arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\avr\interrupt.h:38,

                 from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:22:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:137:20: error: 'OCIE1A' was not declared in this scope

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

                    ^

exit status 1
Błąd kompilacji dla płytki ATtiny13.
Błędna biblioteka znaleziona w C:\Users\Silver1\Documents\Arduino\libraries\SD: brak plików nagłówkowych (.h) w C:\Users\Silver1\Documents\Arduino\libraries\SD
Błędna biblioteka znaleziona w C:\Users\Silver1\Documents\Arduino\libraries\SD: brak plików nagłówkowych (.h) w C:\Users\Silver1\Documents\Arduino\libraries\SD

Ten raport powinien zawierać więcej informacji jeśli w 
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"


Czy to może mieć związek z tym że jest jakaś większa różnica między Attiny 13 i Attiny13a ?
link do dodatkowych adresów URL do menedźera płytek: https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
I jeszcze kod programu w razie W :

#include <Servo.h>

Servo serwomechanizm;

int odczytanaWartosc;
void setup() {

  serwomechanizm.attach(1);

}

void loop() {
odczytanaWartosc = analogRead(A1);
serwomechanizm.write(odczytanaWartosc);
}

Układ programuje w Arduino IDE, Windows 10, Arduino nano jako programator, daje jeszcze screen ustawień płytki:

image.thumb.png.952e227ae086364c706a5c42d1f187d7.png

Link do komentarza
Share on other sites

A czy w ATtiny13A jest taki rejestr TCNT1? Ten mikrokontroler ma tylko jeden licznik TCNT0. Twój program raczej powinien pracować na rejestrach, które w układzie się znajdują.

Edytowano przez Belferek
Link do komentarza
Share on other sites

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\Servo\src\avr\Servo.cpp:130:5: error: 'TCNT1' was not declared in this scope

     TCNT1 = 0;              // clear the timer count

     ^

Przecież wszystko masz napisane w komunikacie. Próbujesz użyć klasy Servo, a ta odwołuje się do nieistniejącego rejestru tu- TCNT1

Moim zdaniem nie możesz tej biblioteki użyć z tym mikrokontrolerem. Zobacz datasheet dla ATtiny13A - tam nie ma Timer1.

Tak na marginesie tu znajdziesz wiele projektów korzystających z ATtiny13 - warto zobaczyć.

Edytowano przez Belferek
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.