Guten Abend,
ich habe es jetzt mal im Slave versucht den Taster Abzufragen und auch im Slave eine LED einzuschalten aber es klappt nicht nur die Serielle Verbindung klappt
Code:
#include <util/twi.h>      //enthält z.B. die Bezeichnungen für die Statuscodes in TWSR
#include <avr/interrupt.h>  //dient zur Behandlung der Interrupts
#include <stdint.h>      //definiert den Datentyp uint8_t
#include "twislave.h"
#include "uart.h"           //UART-Lib von P- Fleury
#include <stdlib.h>         //nötig für Zahlumwandlung mit itoa
#include <util/delay.h>
#include <avr/io.h>
 
// LEDs sind high-active geschaltet
#define LED_AN(LED) (PORTD |=  (1<<(LED)))
#define LED_AUS(LED) (PORTD &= ~(1<<(LED)))
#define LED1  PB0
#define LED2  PB1
// TASTER ist high-active geschaltet 
#define TASTER PD2
#define TASTER_GEDRUECKT() (PIND & (1<<TASTER))
#define BAUD 9600 //Baudrate
#define SLAVE_ADRESSE 0x50 //Die Slave-Adresse
 
//Hilfsfunktion, um Zahlen über das UART auszugeben
void uart_puti( const int val )
{
    char buffer[8];
    uart_puts( itoa(val, buffer, 10) );
}
int main (void)
{
  DDRA &= ~(1<<TASTER);          // Port B: Eingang für Taster
  DDRB |= (1<<LED1) | (1<<LED2); // Port D: Ausgang für LED1 und LED2
 
//TWI als Slave mit Adresse slaveadr starten
init_twi_slave(SLAVE_ADRESSE);
//i2cdatamit Werten füllen, die der Master auslesen und ändern kann
for(uint8_t i=0;i<i2c_buffer_size;i++)
 {
  i2cdata[i]=10+i;
 }
//Serielle Schnittstelle aktivieren
uart_init((UART_BAUD_SELECT((BAUD),F_CPU)));
uart_puts("I2C-Test\r\n");
uart_puts("Teste I2C-Slave mit Adresse "); uart_puti(SLAVE_ADRESSE);
uart_puts("\r\n");
uart_puts("\r\n"); //Leerzeile
void ausgabe_RS232()
{
 uart_puts("i2cdata:\r\n");
 for(uint8_t i=0;i<i2c_buffer_size;i++)
  {
   uart_puti(i2cdata[i]);
   uart_puts("\r\n");
  }
 uart_puts("\r\n");//leerzeile
_delay_ms(1000);
}
//in einer Endlosschleife den Inhalt der Buffer ausgeben
while(1) 
{
  {
   ausgabe_RS232(); 
  }
  if (TASTER_GEDRUECKT())
  {
  LED_AN(LED1);
  }
} //end.while
} //end.main
könnte mir da jemand mal einen Tipp geben was ich Falsch mach
wäre sehr nett