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