#include <util/twi.h>
#include <avr/interrupt.h>
#include <stdint.h>
#include "twislave.h"
Go to the source code of this file.
Defines | |
#define | TWCR_ACK TWCR = (1 << TWEN) | (1 << TWIE) | (1 << TWINT) | (1 << TWEA) | (0 << TWSTA) | (0 << TWSTO) | (0 << TWWC); |
#define | TWCR_NACK TWCR = (1 << TWEN) | (1 << TWIE) | (1 << TWINT) | (0 << TWEA) | (0 << TWSTA) | (0 << TWSTO) | (0 << TWWC); |
#define | TWCR_RESET TWCR = (1 << TWEN) | (1 << TWIE) | (1 << TWINT) | (1 << TWEA) | (0 << TWSTA) | (0 << TWSTO) | (0 << TWWC); |
Functions | |
void | init_twi_slave (uint8_t adr) |
Initalisierung des TWI-Interface. | |
ISR (TWI_vect) | |
ISR, die bei einem Ereignis auf dem Bus ausgeloest wird. | |
Variables | |
volatile uint8_t | buffer_adr |
taken from http://www.roboternetz.de/wissen/index.php/TWI_Slave_mit_avr-gcc
License: GNU GPL v2 (see License.txt)
Definition in file twislave.c.
#define TWCR_ACK TWCR = (1 << TWEN) | (1 << TWIE) | (1 << TWINT) | (1 << TWEA) | (0 << TWSTA) | (0 << TWSTO) | (0 << TWWC); |
#define TWCR_NACK TWCR = (1 << TWEN) | (1 << TWIE) | (1 << TWINT) | (0 << TWEA) | (0 << TWSTA) | (0 << TWSTO) | (0 << TWWC); |
#define TWCR_RESET TWCR = (1 << TWEN) | (1 << TWIE) | (1 << TWINT) | (1 << TWEA) | (0 << TWSTA) | (0 << TWSTO) | (0 << TWWC); |
void init_twi_slave | ( | uint8_t | adr | ) |
Initalisierung des TWI-Interface.
Muss zu Beginn aufgerufen werden, sowie bei einem Wechsel der Slave Adresse.
adr | gewuenschte Slave-Adresse |
Definition at line 37 of file twislave.c.
References buffer_adr.
Referenced by main().
ISR | ( | TWI_vect | ) |
ISR, die bei einem Ereignis auf dem Bus ausgeloest wird.
Im Register TWSR befindet sich dann ein Statuscode, anhand dessen die Situation festgestellt werden kann.
Definition at line 63 of file twislave.c.
References buffer_adr, buffer_size, rxbuffer, TWCR_ACK, TWCR_NACK, TWCR_RESET, and txbuffer.
volatile uint8_t buffer_adr |