็Hallo Markus,

ich habe, deinem Vorschlag zur Folge, vor der Anweisung i=PINA den PINA0 auf HIGH gesetzt. Trotzdem wird die Funktion test() übersprungen.

Also:

PINA|= (1<<PA0);
i = PINA; // Inhalt in Arbeitsvariable
i = i & 0x01; // alle Bits bis auf Bit 0 ausblenden (logisches und)

if ( i != 0 ) // Ergebnis ungleich 0 (wahr)?
{
extern test1(); // dann muss Bit 0 in i gesetzt sein -> Funktion aufrufen
}

Das sieht wohl nach einem kapitalen Anfängerfehler aus, oder? Ich weiß aber nicht, was an diesen Anweisungen falsch sein könnte.


Udo