In der avr-libc 1.6.8 gibt es eine Header Datei für den ATmega16A. Darin wurden anscheinend einige Verbesserungen vorgenommen und Altlasten über Bord geworfen. Allerdings scheinen sich auch Fehler eingeschlichen zu haben. Zum Beispiel fehlen bei einigen IRQ Vektoren Unterstriche im Namen, zum Beispiel USARTRXC_vect statt USART_RXC_vect Außerdem sind einzelne Bits im UDR definiert, UDR0, UDR1 usw. Aber da für andere Controller UDR0 für das gesamte Register definiert ist gibt es da Probleme. Man sollte auf die Bit Definitionen ganz verzichten oder die Bezeichnung zumindest in UDR_0 ändern. Überhaupt gibt es zum Beispiel für manche Interrupt Vectoren vier unterschiedliche Varianten. Eine würde reichen, zwei wären noch nachvollziehbar. Aber vier? USART0_RX_vect USART_RX_vect USARTRXC_vect USART_RXC_vect
Markus schrieb: > USARTRXC_vect statt USART_RXC_vect Ist in der avr-libc 1.7.1 immer noch so. Da hat wohl der Codegenerator versagt. Sieht so aus, als wärst Du der erste der drüber stolpert, hab jedenfalls nicht derartiges in der Buglist gefunden. Also am besten hier als Bug melden: http://www.nongnu.org/avr-libc/ bzw. genauer hier: https://savannah.nongnu.org/bugs/?group=avr-libc
So, mal angemeldet Ok, erledigt. Ich hoffe, ich hab es richtig gemacht. Ich kenne mich auf der Plattform nämlich nicht aus und ich mag sie auch nicht sonderlich. Außerdem ist mein englisch für sowas etwas holprig. Hoffe, die verstehen, was ich meine. Warum wurden in der Header Datei eigentlich für alle einzelnen Bits jetzt Namen vergeben? Die einzelnen Bits in UDR wird man wohl nur äußerst selten verwenden.
Markus B. schrieb: > Warum wurden in der Header Datei eigentlich für alle einzelnen Bits > jetzt Namen vergeben? Die einzelnen Bits in UDR wird man wohl nur > äußerst selten verwenden. Vermutlich, weil das so in den XML-Files von Atmel drin steht (z.B. ATmega16A.xml):
1 | <UDR> |
2 | <IO_ADDR>0x0C</IO_ADDR> |
3 | <MEM_ADDR>0x2C</MEM_ADDR> |
4 | <UDR0_MASK>0x01</UDR0_MASK> |
5 | <UDR1_MASK>0x02</UDR1_MASK> |
6 | <UDR2_MASK>0x04</UDR2_MASK> |
7 | <UDR3_MASK>0x08</UDR3_MASK> |
8 | <UDR4_MASK>0x10</UDR4_MASK> |
9 | <UDR5_MASK>0x20</UDR5_MASK> |
10 | <UDR6_MASK>0x40</UDR6_MASK> |
11 | <UDR7_MASK>0x80</UDR7_MASK> |
12 | </UDR> |
Die Headerfiles werden wohl mehr oder weniger automatisch aus den XMLs generiert. Da Atmel sich aber öfter mal neue Schreibweisen einfallen läßt, gibts da halt gelegentllich Problem. Genaueres kann Dir sicher Jörg Wunsch sagen, wenn er mal hier vorbei kommt. CU PS: Da Du es vergessen hast, hier noch der Link zum Bugreport: http://savannah.nongnu.org/bugs/?33799
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.