Forum: Mikrocontroller und Digitale Elektronik AVR Studio löscht nach reti die IR Flags nicht


von R--- S. (rene66)


Lesenswert?

Hallo,

habe hier 2 Rechner mit jewals dem AVR-Studio neuste Version oben 
eingestellt ist Simulator 2 für einen Xmega128a1. der asm Code ist exakt 
der selbe auf jedem Rechner bei einem werden nach reti in Simulator die 
IR Flags nicht gelöscht. Gibt es da eine Option in den Einstellungen 
oder hat die Installation einen Treffer habt Ihr das auch schon mal 
gehabt?

von Johannes M. (johnny-m)


Lesenswert?

Nach dem reti werden überhaupt keine Flags gelöscht! Die 
Interrupt-Flags werden in praktisch allen Fällen beim Sprung in den 
Interrupt-Vektor gelöscht, Ausnahme ist z.B. das UART-RXC-Flag, das beim 
Lesezugriff auf UDR gelöscht wird, wenn der Puffer kein weiteres Zeichen 
enthält.

von R--- S. (rene66)


Lesenswert?

Hallo,

am Thema vorbei.
Die werden auf einem Rechner gelöscht und auf dem anderen nicht.
Wann ob nun bei reti oder auf dem hinweg ist erstmal zweitrangig.

von R--- S. (rene66)


Lesenswert?

Komisch troz Neuinstallation des AVR Studios immer noch das selbe 
Problem.

einmal habe ich

die Version auf dem Rechner Die funktioniert

AVR Studio    4.14.603  Service Pack 1

und dann die aktuelle von der Webseite (623) geht nicht.
Ist das jetzt ein Bug in der neuen Version?

von Jorge (Gast)


Lesenswert?

Du hast einen Junk PC. Vom Overclocker ?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wodran merkst du das die IR FLags nicht gelöscht werden?
Wird der Interupt sofort wieder angesprungen? ggf ist es nur ein 
Darstellungsproblem...

von R--- S. (rene66)


Lesenswert?

Hallo,

ja die Flags werden nicht gelöscht und der Interrupt wird direkt wieder 
angesprungen. Egal ob Timer Overfolw oder AD Wandler.... .
Klicke ich auf das flag um es zu löschen macht das Studio was es soll 
bis der nächste IR kommt egal von wo. Oder habe ich was bei der IR 
einrichtung versaut?

Adwandler

ldi temp,ADC_RESOLUTION_8BIT_gc
sts ADCA_CTRLB,temp; für 8 Bit betrieb 8-bit right-adjusted result

ldi temp,ADC_CH0IF_bm
sts ADCA_CH0_INTCTRL,temp ;Interrupt auf Kanal 0 für ADC Freigeben

ldi temp,ADC_ENABLE_bm
sts ADCA_CTRLA,temp; ADC A einschalten

ldi temp,ADC_PRESCALER_DIV4_gc;Vorteiler einschalten
sts ADCA_PRESCALER,temp

ldi temp,ADC_REFSEL_INT1V_gc ;Referenzspannung auswählen
sts ADCA_REFCTRL,temp

und dann die IR Freigeschalten mit

ldi temp,(PMIC_LOLVLEN_bm)|(PMIC_HILVLEN_bm)|(PMIC_MEDLVLEN_bm); 
Interrupts level Freigeben
sts PMIC_CTRL,temp

und den Adwandler gestartet (pin gewählt und los)

ldi temp,ADC_CH_START_bm
sts ADCA_CH0_CTRL,temp   ;Start Adwandler auf Kanal0
ldi temp,ADC_CH_MUXPOS_PIN0_gc          ; Pin 0
sts ADCA_CH0_MUXCTRL,temp

probierts doch mal auf der 4.15 Rev 623

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Warum machst Du Dir solchen Kopf um den Simulator? Flashe den Code und 
gucke, was der Controller daraus macht. Mit einer Debug-Routine über 
UART, LED oder Display siehst Du genau so viel und hast die Gewißheit, 
ob der Controller damit klar kommt oder nicht. Das ist besser, als jeder 
Simulator.

von R--- S. (rene66)


Lesenswert?

Hallo,

hebe jetzt nochmal auf dem rechner wo es vorher ging die 4.15 Version 
draufgesemmelt und siehe da der selbe Fehler es ligt also nicht am 
Rechner sondern am AVR Studio.

@Travel Rec
Der ADWandler bringt schon komische Werte im 8Bit Betrieb komme ich nie 
auf Null (ich gebe das Ergebiniss auf Port C aus so:

lds temp,ADCA_CH0RES ;8 Bit ergebniss auslesen CH 0
sts PortC_out,temp

wenn ich PIN A1 auf Masse ziehe. Habe ich beim AD Wandler was vergessen?

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.