Display.c


1
// 
2
//   Display.c
3
//   
4
//   Created: 05.02.2013 09:13:46
5
//   Author: sh22666
6
//   
7
8
#include <avr/io.h>                    //
9
#include <util/delay.h>                  // Einbinden von Headerdateien
10
#include <avr/i2cmaster.h>                //
11
12
#define Display 0b01110000                // Slaveadresse - Adresse des Display
13
14
#ifndef F_CPU                      //
15
#define F_CPU 8000000UL                  // Taktfrequenz des ATMega8 festlegen
16
#endif                          //  
17
18
19
int main(void)
20
{
21
  
22
  DDRB  |= (1<<DDB0);                  // BankB = Ausgänge
23
  PORTB |= (1<<PB0);                  // PB0=0
24
  PORTB ^= (1<<PB0);                  // PB0=alternierend
25
    
26
  while(1)
27
  {    
28
    _delay_ms(1000);                // Warten
29
        
30
    i2c_init();                    // Initialisierung des I2C-Bus
31
  
32
    if(!(i2c_start(Display+I2C_WRITE)))        // Slave bereit zum schreiben?
33
    {
34
      i2c_write(0b11001000);                      // mode-set
35
      i2c_write(0b01001111);                      // load-data-pointer
36
      i2c_write(0b11100111);                      // device-select
37
      i2c_write(0b11111011);                      // bank-select
38
      i2c_write(0b11110000);                      // blink-select
39
      i2c_stop();                  // Zugriff beenden
40
    
41
      PORTB ^= (1<<PB0);              // PB0=alternierend
42
      _delay_ms(1000);              // Warteschleife
43
    }  
44
    else
45
    {
46
      PORTB ^= (1<<PB0);              // PB0=alternierend
47
      _delay_ms(10000);              // längere Warteschleife
48
    }  
49
  }    
50
}