ATMEGA324A Timer1

Feb 10, 2013 8 Replies

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?

Gruesse, Joerg http://www.analogconsultants.com/

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|= (1

Am 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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required