Hallo,
in AVR Studio setze ich PINA auf HIGH. Die Abfrage if ( i != 0 ) ergibt doch eine "1", also wahr. Jetzt muss demnach Funktion test() angesprungen werden. Im Simulator wird PINA mit "1" angezeigt. Warum wird der Funktionsaufruf test() übersprungen? Bin neu in C. Fehlt irgendwo ein { oder ; oder sonst was? Nach der if-Abfrage springt der Befehlszähler sofort auf PORTB +=akku;
Danke meinen Helfern.
Udo
Code:
#include <avr\io.h>
uint8_t i, akku=9;
int main( void )
{
while(1)
{
// Funkion test1 aufrufen, wenn Bit 0 in Register PINA gesetzt (1) ist
i = PINA; // Inhalt in Arbeitsvariable
i = i & 0x01; // alle Bits bis auf Bit 0 ausblenden (logisches und)
// falls das Bit gesetzt war, hat i den Inhalt 1
if ( i != 0 ) // Ergebnis ungleich 0 (wahr)?
{
int test1(); // dann muss Bit 0 in i gesetzt sein -> Funktion aufrufen
}
akku+=1;
PORTB +=akku;
....................................................................
Hier geht es weiter in der While-Schleife
// FUNKTIONEN test1() und weitere
int test1();
{
PORTB=0x55;
}
return 0 ;
Lesezeichen