Forum: Mikrocontroller und Digitale Elektronik Bug report für avr gcc io.h include


von Felix H. (masterq)


Lesenswert?

Hallo zusammen,
ich habe einen Bug in den avr gcc include files für die xmega d reihe 
gefunden.
Und wollte gerne ein bug fix senden oder zumindest einen bug report.
Damit alle die das gleiche Problem haben die Lösung hier auch finden 
können beschreibe ich Problem und Lösung noch kurz.
Das Problem ist, dass der xmega A 2 adc hat, also adca und adcb, der 
eine ist für port a zuständig, der andere für port b. Beim xmega d ist 
das anders, dort sind port a und port b an den adca gemultiplext.
Deshalb gibt es auch 16 pins die man auswählen kann. Jedoch gibt es nur 
ADC_CH_MUXPOS_pin0 bis ADC_CH_MUXPOS_pin7. Allerdings gibt es noch ein 
bit 3. Also insgesamt 4.
1
#define ADC_CH_MUXPOS3_bm  (1<<6)  /* Positive Input Select bit 3 mask. */
2
#define ADC_CH_MUXPOS3_bp  6  /* Positive Input Select bit 3 position. */

Also müsste es auch ADC_CH_MUXPOS_pin0 bis ADC_CH_MUXPOS_pin15 geben. 
Diese letzten 8 existieren in den Header Dateien aber leider nicht.
Wenn man sie einträgt, funktioniert es wunderbar (getestet).
Evt. ist das Eintragen von pin8-15 zwar noch eine Diskussion wert, weil 
es auch verwirren könnte. Noch mehr jedoch verwirrt zunächst die 
Tatsache, dass es zunächst so scheint, als könnte man die pins an portb 
gar nicht mit dem adca messen.
Ich habe jedoch noch nicht ermittelt, ob dies auch für den xmega d4 
gilt, für den xmega d3 auf jeden Fall.
Besonders da Atmel bereits andere fehlerhafte Funktionen in den xmega 
eingebaut hat, worauf hin die Programmierer beschlossen haben, diese 
Funktionen einfach nicht in den Headern aufzunehmen.

Grüße

Felix

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
Noch kein Account? Hier anmelden.