Ich hoffe jetzt hab ich den Fehler:
In C dürfen Befehle nur innerhalb von Funktionen stehen, also in main oder in einer anderen Funktion. Du hast den init-Befehl einfach so in die Landschaft gesetzt, was wohl diese seltsamen Fehler hervorruft. Das ist nur in Assembler erlaubt, dort wird der Code streng Zeile für Zeile ausgeführt. In Basic geht es auch so, aber in C nicht! Hier beginnt die Programmausführung immer am Anfang von main. Daher muss in jdem C-Programm die Funktion main vorhanden sein.
AAußerhalb von Funktionen dürfen nur Deklarationen von globalen Variablen sowie Präprozessor-Anweisungen (alles was mit # anfängt stehen.
Also
Code:
#include <avr/interrupt.h>
#include <avr/io.h>
#include "twislave.c"
int main(void)
{
init_twi_slave(0x50);
txbuffer[0]=255;
txbuffer[1]=100;
txbuffer[2]=33;
}
und es müsste laufen.
Lesezeichen