ATmega162.c


1
/*
2
 * ATmega162.c
3
 *
4
 * Created: 14.10.2016 18:35:33
5
 *  Author: Mathias
6
 */ 
7
8
#define F_CPU 8000000
9
#include <avr/io.h>
10
#include <avr/interrupt.h>
11
12
ISR (TIMER1_COMPA_vect)
13
{
14
  PORTD ^= (1 << PD0);                            // PD0 toggeln -> f=2,5Hz
15
}
16
17
int main(void)
18
{
19
  //////////////////////////////////////////////////////////////////////////
20
  // I/OŽs festlegen
21
  DDRD = 0xFF;
22
  DDRE = 0x04;
23
  
24
  //////////////////////////////////////////////////////////////////////////
25
  // Timer1 Frequenz 5Hz
26
  TIMSK |= (1 << TOIE1) | (1 << OCIE1A);
27
  ICR1 = (uint16_t)25000;                            // Top => 5Hz
28
  OCR1A = (uint16_t)12500;                          // Vergleichswert einstellen
29
  OCR1B = (uint16_t)12500;                          // Vergleichswert einstellen
30
  
31
  TCCR1A |= (1 << COM1A1);                          // non-inverting mode für Pin 0C1A
32
  TCCR1A |= (1 << COM1B1) | (1 << COM1B0);                  // inverting mode für OC1B
33
  
34
  TCCR1A |= (1 << WGM11);                            // Fast PWM Mode 14 Teil A
35
  TCCR1B |= (1 << WGM13) | (1 << WGM12);                    // Fast PWM Mode 14 Teil B
36
  TCCR1B |= (1 << CS11);                            // Prescaler: 1/8
37
  
38
  //////////////////////////////////////////////////////////////////////////
39
  // Allgemeine Settings
40
  sei();                                    // IRQ's Freigabe
41
  
42
    while(1)
43
    {    
44
    }
45
  return(0);
46
}