beim Wechsel von m644 zu m1284p passiert folgendes SIGNAL(SIG_OVERFLOW0) alt ../timer2_104.c:211: warning: 'SIG_OVERFLOW0' appears to be a misspelled signal handler probiert: ISR(SIG_OVERFLOW0) dito lt. Datenblatt ist TIMER0_OVF -> Vector(19) im m1284p im m644 dito 19 $0024 TIMER0_OVF Timer/Counter0 Overflow in der iomxx4.h"(805) #define SIG_OVERFLOW0 _VECTOR(18) wieso ist da ein Unterschied zur m644 ? und welcher Vector gilt nun und wie beseitigt man den Fehler ? vielen Dank
es wird immer verrückter suche ich nach SIG_OVERFLOW0 stosse ich auf: iom128.h"(426) #define SIG_OVERFLOW0 _VECTOR(16) iom64.h"(425) #define SIG_OVERFLOW0 _VECTOR(16) iomxx4.h"(805) #define SIG_OVERFLOW0 _VECTOR(18) nirgendwo taucht _VECTOR(19) auf welcher ja der TIMER0 overflow sein soll suche ich falsch ? *.h "C:\PROGRAMME\ATMEL\WINAVR\avr\include\avr\ mit subfolders
Wenn du ISR nimmst, ist die korrekte Variante:
1 | ISR(TIMER0_OVF) { |
2 | ...
|
3 | }
|
Ich kenn die Signal Variante nicht, aber nach http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html scheint die veraltet zu sein. Die neuen Namen findest du unter 12.2 im DAtenblatt des 1284p
also ich finde kein define zu SIG_OVERFLOW0 mit vector 19 bei vector 19 finde ich kein define zu SIG_OVERFLOW0
Dafür steht in iom1284p.h #define TIMER0_OVF_vect _VECTOR(18) /* Timer/Counter0 Overflow */ #define SPI_STC_vect _VECTOR(19) /* SPI Serial Transfer Complete */ Gegenüber dem Datenblatt scheinen die Nummern alle um verschoben, weil dort der Resetvektor als Vektor 1 aufgeführt ist. mfg
Verwirrter Anfänger schrieb: > Wenn du ISR nimmst, ist die korrekte Variante:ISR(TIMER0_OVF) { Nicht ganz. ISR(TIMER0_OVF_vect) { } SIG... ist obsolet und für die neueren µC nicht mehr gültig. mfg.
Michael schrieb: > Gegenüber dem Datenblatt scheinen die Nummern alle um verschoben, weil > dort der Resetvektor als Vektor 1 aufgeführt ist. Und? Der Compiler fängt das richtige damit an. mfg.
Verwirrter Anfänger schrieb: > Wenn du ISR nimmst, ist die korrekte Variante: sagte ich nicht bereits das ich das probiert hatte ? ../timer2_104.c:212: warning: 'TIMER0_OVF' appears to be a misspelled signal handler
1 | ISR(TIMER0_OVF) |
2 | //ISR(SIG_OVERFLOW0)
|
3 | //SIGNAL(SIG_OVERFLOW0)
|
4 | { extern volatile UWORD count__; |
5 | cli(); |
6 | count__++; |
7 | TCNT0 = -2; // 2 * 256 = 512 cycle // preload for 250µs RC5 |
8 | |
9 | (void) irmp_ISR(); // call irmp ISR |
10 | (void) rc5_ISR(); |
11 | sei(); |
12 | }
|
es bleibt ja dabei das ich keine Verknüpfung finde "C:\PROGRAMME\ATMEL\WinAVR\avr\include\avr\iomxx4.h"(804) #define TIMER0_OVF_vect _VECTOR(18) "C:\PROGRAMME\ATMEL\WinAVR\avr\include\avr\iom644pa.h"(946) #define TIMER0_OVF_vect _VECTOR(18) /* Timer/Counter0 Overflow */ wo es doch eigendlich lt. Datenblatt Vector 19 sein soll also das hier verwirrt noch mehr, suche ich nach: _VECTOR(19) finde ich iom16hvb.h"(850) iom32hvb.h"(833) beide haben doch nix mit dem 644 oder 1284p zu tun ? suche ich nach: TIMER0_OVF finde ich iom1284p.h"(1057) _VECTOR(18) iom644pa.h"(945) #define TIMER0_OVF_vect_num 18 iom644pa.h"(946) #define TIMER0_OVF_vect _VECTOR(18) doc2593.pdf 10.1 Interrupt Vectors in ATmega644 (Vector)19 $0024 TIMER0_OVF Timer/Counter0 Overflow dito in m1284p win avr Version WinAVR-20100110
Thomas Eckmann schrieb: > Nicht ganz. > > ISR(TIMER0_OVF_vect) das hat geholfen, ein Fehler weniger ! DANKE DANKE DANKE bleibt nur noch warning: 'SIG_OUTPUT_COMPARE2A' appears to be a misspelled signal handler
mit ISR(TIMER2_COMPA_vect) ist auch Fehler 2 weg, danke fürs führen auf die richtige Spur
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.