1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | ISR(TWI_vect);
|
5 |
|
6 | int main(void)
|
7 | {
|
8 | uint8_t totzeit = 5;
|
9 | TCCR1A = 0xE0; //PWM Phase/Freq correct
|
10 | TCCR1B = 0x11; //"
|
11 | ICR1H = 0x00; //TOP Value
|
12 | ICR1L = 0x80; //TOP Value
|
13 | OCR1AH = 0x00; //Compare High = 0
|
14 | OCR1BH = 0x00; //"
|
15 |
|
16 | TWCR = (1<<TWEN)|(1<<TWEA)|(1<<TWIE); // TWI enable, ack, Interrupt
|
17 | TWAR = 0x40; // Adresse, kein general Call
|
18 | TWSR = 0;
|
19 |
|
20 |
|
21 | DDRB = (1<<PB1)|(1<<PB2)|(1<<PB4);
|
22 | DDRD = (1<<PD6)|(1<<PD1)|(1<<PD0);
|
23 |
|
24 | ADMUX = (1<<REFS0)|(1<<REFS1)|(1<<MUX1)|(1<<MUX0)|(1<<ADLAR);
|
25 | //int Referenz, ADC3, left adj.
|
26 | ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
|
27 | //enable, int, 128prescale
|
28 | SFIOR = 0x00;
|
29 |
|
30 | OCR1AL = 0x00;
|
31 | OCR1BL = 0xFF;
|
32 |
|
33 | PORTB = (1<<PB4); // LED aus
|
34 |
|
35 | sei();
|
36 |
|
37 | while(1){}; // Endlosschleife Hauptprogramm
|
38 |
|
39 | return 0;
|
40 | }
|
41 |
|
42 | ISR(TWI_vect)
|
43 | {
|
44 | PORTB &= ~(1<<PB4); // LED an
|
45 | TWCR |= (1<<TWINT); //
|
46 | }
|