Subversion Repositories Projects

Rev

Rev 112 | Blame | Compare with Previous | Last modification | View Log | RSS feed


#include <avr/io.h>
#include <avr/interrupt.h>
#include "main.h"
#include "timer.h"

volatile uint8_t timer;
volatile uint8_t counter, counter2;
volatile uint8_t key;
volatile uint8_t rs232_timer;


ISR(SIG_OUTPUT_COMPARE0)                                                // Timer-Interrupt (100 Hz)
{
        if (counter > 0)
                counter --;
        else
        {
                counter = 10;
                key = (~PINA >> 4) & 0x0F;
                counter2 ++;
        }
       
        if (timer > 0)
                timer --;
               
        if (rs232_timer > 0)
                rs232_timer --;
       
}

void timer_init (void)
{
        TCCR0 = (1<<CS02)|(1<<CS00)|(1<<WGM01); // Prescaler 1024
//      OCR0 = 72;                                                                      // Interrupt 100Hz für 7,372800 MHz-Quarz

//      OCR0 = (F_CPU / ( 100 * 2 * 1024)) -1 ;
        OCR0 = (F_CPU / ( 100L * 1024L)) ;

        TIMSK |= (1<<OCIE0);                                            // Interrupt freigeben für OCR
}