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 | }
|