Empf.c


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
}