Hi Leute, ich versuche nun schon seit einigen Stunden, den Timer1 des ATMEGA324A zu laufen zu bekommen. Er soll nur Interrupts im 1kHz- Takt auswerfen (10MHz Quarz).
Hier meine Initialisierung:
void initTimer1(void) { PRR0 &= ~(1
Hi Leute, ich versuche nun schon seit einigen Stunden, den Timer1 des ATMEGA324A zu laufen zu bekommen. Er soll nur Interrupts im 1kHz- Takt auswerfen (10MHz Quarz).
Hier meine Initialisierung:
void initTimer1(void) { PRR0 &= ~(1
Keine Ahnung, muss ich anderen ueberlassen, aber aus aehnlichen Pannen mit anderen uC: Du bei Initialisieren hast nicht zufaellig den Watchdog Timer vergessen?
Das hab ich schon hintermir. Der ist nämlich im Gegensatz zum Vorgänger ATMEGA32 grundsätzlich aktiv und will erstmal aktiviert werden.
Habs jetzt doch hinbekommen, noch 3 Fehler:
1.: Man muss bei den neueren ATMEGAs wohl grundsätzlich die Peripherie erst aus dem Stromsparmodus aufwecken. Dann gehts auch im Simulator 2.: Irgendwas muss man noch am IVSEL drehen. Es geht jetzt, verstanden hab ichs nicht. 3.: >> if ((PORTC|(1 PORTC&= ~(1 else >> PORTC|= (1Am 10.02.2013 22:30, schrieb Michael S:
...im Simulator kommen die Interrupts aber. Allerdings ist das Verhalten merkwürdig, was aber nicht an Deinem Code liegt, ich hatte das Problem auch schon in anderen Projekten:
Ich verwende Atmel Studio 6. Wenn ich den Code übersetze, einen Breakpoint in die ISR setze, dann "Start Debugging and Break"(Simulator) mache und dann "F5 Continue", dann landet er irgendwann im Breakpoint in der ISR.
Wenn ich aber nach "Start Debugging and break" noch einen (oder mehr) Einzelschritt gehe und erst dann "F5 Continue" mache, wird der Breakpoint in der ISR nie erreicht. Mein Verdacht ist, dass irgendwie das I-Flag der CPU gelöscht wird o.ä.
Ich meine das Verhalten war beim Studio 4 anders, wenn ich mich recht erinnere, ist dort dann der Debugger (auch beim Einzelschritt) direkt in die ISR gesprungen wenn ein Interrupt anlag. Das scheint nun irgendwie "kaputt" zu sein beim Studio 6...
Also scheint der Code im Sim doch richtig zu laufen...
Grüße Markus
Am 10.02.13 22:54, schrieb Michael S:
...will erstmal DEaktiviert werden.
-> Tippfehler
Michael
Am 10.02.2013 22:56, schrieb Markus Marquardt:
Tools -> Debugger -> Mask Interrupts while stepping
Gruß
Robert
Am 11.02.2013 19:45, schrieb Gernot Fink:
Am 11.02.2013 11:32, schrieb Robert Loos: >> Breakpoint in der ISR nie erreicht. Mein Verdacht ist, dass irgendwie >> das I-Flag der CPU gelöscht wird o.ä. > > Tools -> Debugger -> Mask Interrupts while stepping
Danke :-) Wenn nur alles so einfach wäre...
Markus
Have something to add? Share your thoughts — no account required.
Ask the community — no account required