]> cvs.zerfleddert.de Git - rsbs2/blame - bmc/i2c.c
beginning i2c
[rsbs2] / bmc / i2c.c
CommitLineData
99e4226b
MG
1#include <util/twi.h>
2#include <avr/interrupt.h>
3#include <stdio.h>
4#include "i2c.h"
5
6#define TWCR_ACK TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT)|(1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|(0<<TWWC);
7#define TWCR_NACK TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT)|(0<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|(0<<TWWC);
8#define TWCR_RESET TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT)|(1<<TWEA)|(0<<TWSTA)|(1<<TWSTO)|(0<<TWWC);
9
10void i2c_init()
11{
12 TWAR = BMC_ADDR;
13 TWCR &= ~(1<<TWSTA)|(1<<TWSTO);
14 TWCR|= (1<<TWEA) | (1<<TWEN)|(1<<TWIE);
15}
16
17ISR (TWI_vect)
18{
19 printf("Interrupt, Status: %02x!\n", TW_STATUS);
20
21 switch (TW_STATUS) {
22 default:
23 TWCR_RESET;
24 break;
25 }
26}
Impressum, Datenschutz