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