Forum: Mikrocontroller und Digitale Elektronik Atmega1280: ADC-Interrupt-Vector wird nicht aufgerufen


von Ingo Heffe (Gast)


Lesenswert?

Hallo,

ich mache gerade erste Versuche mit dem Atmega1280 (versorgt mit 5V bei 
16MHz) und bin trotz Beachtung aller Spezifikationsvorgaben beim Thema 
ADC-Messung auf ein Problem gestossen:
Der Interrupt-Vector wird nicht aufgerufen, obwohl ich die ADC-Zelle, 
den ADC-Interrupt, den globalen Interrupt sowie das ADSC-Flag vor jeder 
Messung aktiviert habe, dies sind die Register-Werte:

DIDR0 = 0xFF ;    -> digital inputs disabled
DIDR2 = 0xFF ;    -> digital inputs disabled
ADCSRA = 0x8F;    -> ADEN, ADIE, prescaler 128, ADSC set at conversion 
start
ADCSRB = 0;
ADMUX = 0 ;       -> AREF used

Habe ich etwas in der Spezifikation übersehen ?
Es wäre sehr hilfreich, wenn mir jemand einen Hinweis für die Lösung 
dieses Problems geben könnte.
von Ingo Heffe (Gast)


Lesenswert?

Als Fehlerursache stellte sich ein fehlerhaftes RAM-Mapping heraus. Das 
benutzte Applikations-RAM wurde in die Extended-Register-Sektion 
allokiert.
Dies kann durch folgende Linker-Optionen behoben werden:
-Wl,-Map=$(TARGET).map -Wl,-Tdata,0x800200 -o $@ $(OBJS).
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.