#include <avr/io.h>
#include <string.h>
#include "i2cmaster.h"
Include-Abhängigkeitsdiagramm für mainMaster.c:
gehe zum Quellcode dieser Datei
Datenstrukturen | |
struct | tstMenue |
struct | tstZeile |
Makrodefinitionen | |
#define | NDISPLAY_ADD 0x40 |
#define | TITELKURZ 12 |
#define | TITELLANG 17 |
Aufzählungen | |
enum | enTWIRegisterAdr { INBUFFER = 1, OUTBUFFER, INCOUNTER, OUTCoOUNTER, PAKETREQID, STATUS, GPIO } |
enum | enElemtenTypen { VARIABLE, MENUE, TEXT } |
Funktionen | |
void | i2c_writeData (uint8_t *data, uint8_t size) |
int | main (void) |
#define NDISPLAY_ADD 0x40 |
#define TITELKURZ 12 |
Definiert in Zeile 19 der Datei mainMaster.c.
#define TITELLANG 17 |
Definiert in Zeile 20 der Datei mainMaster.c.
enum enElemtenTypen |
enum enTWIRegisterAdr |
Definiert in Zeile 22 der Datei mainMaster.c.
00022 { INBUFFER=1, OUTBUFFER, INCOUNTER, OUTCoOUNTER, PAKETREQID, STATUS, GPIO };// Adressen der Register
void i2c_writeData | ( | uint8_t * | data, | |
uint8_t | size | |||
) |
Definiert in Zeile 92 der Datei mainMaster.c.
Benutzt i2c_write().
Wird benutzt von main().
00093 { 00094 uint8_t i=0; 00095 00096 for( i=0; i<size; i++) 00097 { 00098 i2c_write(*data++); 00099 } 00100 00101 }
int main | ( | void | ) |
Definiert in Zeile 44 der Datei mainMaster.c.
Benutzt tstZeile::element, tstZeile::elementType, i2c_init(), i2c_start(), i2c_start_wait(), i2c_stop(), i2c_write(), I2C_WRITE, i2c_writeData(), tstZeile::id, tstMenue::id, INBUFFER, INCOUNTER, MENUE, NDISPLAY_ADD, tstZeile::parent, tstZeile::pos und tstMenue::titel.
00045 { 00046 unsigned char ret; 00047 00048 00049 DDRB = 0xff; // use all pins on port B for output 00050 PORTB = 0b00000011; // (active low LED's ) 00051 00052 i2c_init(); // init I2C interface 00053 00054 00055 tstMenue menue; 00056 menue.id = 1; 00057 memcpy(menue.titel,"I2C Einstellungen", 18); 00058 tstZeile tabZeile; 00059 tabZeile.id = 1; 00060 tabZeile.pos = 1; 00061 tabZeile.element = 0; 00062 tabZeile.elementType = MENUE; 00063 tabZeile.parent = 0; 00064 00065 /* schreibe Daten in den INFifo des DisplayControllers */ 00066 ret = i2c_start(NDISPLAY_ADD + I2C_WRITE); // set device address and write mode 00067 PORTB = 0b00000110; 00068 if ( ret ) { 00069 PORTB = 0b00001110; 00070 /* failed to issue start condition, possibly no device found */ 00071 i2c_stop(); 00072 PORTB = 0b00011100; // activate all 8 LED to show error */ 00073 }else { 00074 PORTB = 0b00111000; 00075 /* issuing start condition ok, device accessible */ 00076 i2c_write(INBUFFER); 00077 i2c_writeData((uint8_t*)&tabZeile, sizeof(tabZeile)); 00078 i2c_writeData((uint8_t*) &menue, sizeof(menue)); 00079 i2c_stop(); // set stop conditon = release bus 00080 PORTB = 0b01110000; 00081 } 00082 00083 /* schreibe die Anzahl der gesendeten Daten */ 00084 i2c_start_wait(NDISPLAY_ADD + I2C_WRITE); // set device address and write mode 00085 i2c_write(INCOUNTER); 00086 i2c_write(sizeof(tabZeile) + sizeof(menue)); 00087 i2c_stop(); 00088 00089 for(;;); 00090 }