Hallo,
ich habe folgenden Quellcode geschrieben. Die ISR soll jede ms ausgeführt werden.
Der Builder läuft ohne Fehler durch. Jedoch Toggeln die Ausgänge nicht hin und her. Finde meinen Fehler nicht, kann mir einer helfen?
Gruß und danke schon einmal!
ich habe folgenden Quellcode geschrieben. Die ISR soll jede ms ausgeführt werden.
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 1000000l
volatile unsigned int counter;
int main(void)
{
//Ein- und Ausgaenge definieren
DDRA = 0xFF; // PORTA Ausgang
DDRB = 0x00; // PORTB Eingang
DDRC = 0xFF; // PORTA Ausgang
DDRD = 0xFF; // PORTA Ausgang
// Timer 0 konfigurieren
TCCR0 = (1<<CS01) | (1<<WGM01); // Prescaler von 8 | CTC-Modus
OCR0 = 131; //131..255 dann Overflow
TIMSK |= (1<<TOIE0); // Compare Interrupt erlauben
sei(); // Global Interrupts aktivieren
while(1)
{
if(counter == 2000)
{
PORTA = 0x00; // alle LEDs an
PORTC = 0x00; // alle LEDs an
PORTD = 0x00; // alle LEDs an
}
if (counter == 4000)
{
PORTA = 0xff; // alle LEDs an
PORTC = 0xff; // alle LEDs an
PORTD = 0xff; // alle LEDs an
}
if(counter == 6000)
{
counter = 0;
}
}
return 1;
}
ISR (TIMER0_OVF_vect)
{
counter++;
}
Der Builder läuft ohne Fehler durch. Jedoch Toggeln die Ausgänge nicht hin und her. Finde meinen Fehler nicht, kann mir einer helfen?
Gruß und danke schon einmal!