Hallo Forum,
anbei Code, der sich mit 0 Warnings übersetzen lässt und grundsätzlich funktioniert.
Bei der Ersterstellung im AVR-Studio wird die ISR nicht ausgeführt und beim Debuggen wird ein Stack overflow angemeckert. Die wenigen Zeilen Code sollten für eine Atmega16 nicht das Problem sein.
Danach habe ich gestern abend den Code 1:1 in eine neu gestartete AVR-Studio Anwendung kopiert und die ISR wird ebenfalls ausgeführt.
Der Timer lief einwandfrei in beiden Testläufen.
OK, es war schon spät am Abend, Konzentrationsfehler, etc ...
Aber heute bei Tageslicht habe ich jedoch das Problem reproduzieren können.
Umgebung: RN-Board 1.4, Atmega16 mit 1MHz default value, USB MK2, AVR-Studio4.18, Vista
Wie kann ich solches Verhalten vermeiden?
MFG Walter
Code:
#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
volatile unsigned char x = 0;
ISR (TIMER2_OVF_vect){
x = 1;
}
int main (void)
{
DDRC=0xff;
PORTC=0x0f;
DDRD=0xff;
TCCR2 = (1<<COM20)| (1<<CS22) | (1<<CS21) | (1<<CS20);
TIMSK = (1<<TOIE2);
sei();
while(1){
if(x ){
x = 0;
PORTC = ~PORTC;
}
}
}
[/code]
Lesezeichen