PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler im Programm [asuro]



xyphrox
20.10.2005, 14:15
#include "asuro.h"
#define sw PollSwitch();

int main (void)

{
Init();

sw PollSwitch();
if (sw & 0x01)
{
SerWrite("hallo1",20);
}
if (sw & 0x02)
{
SerWrite("hallo2",20);
}
if (sw & 0x04)
{
SerWrite("hallo3",20);
}
if (sw & 0x08)
{
SerWrite("hallo4",20);
}
if (sw & 0x10)
{
SerWrite("hallo5",20);
}
if (sw & 0x20)
{
SerWrite("hallo6",20);
}
}


ich sitz jetzt schon seit 2std dran und finde den fehler nit.
ich habe einen kaputtenen taster und muss rausfinden welcher mir dauernd die logische 1 liefert und das will ich über dieses programm regeln.

Fehler lautet wie folgt:

test.c:10: error: parse error before ';' token

ragnar
20.10.2005, 14:29
Ohne den Asuro zu kennen:

Der Strichpunkt nach dem #define sw PollSwitch(); ist falsch.

In den if statements steht dann nach der Expansion der Makros:
if (PollSwitch(); & 0x01)

Es müßte aber vmtl. heißen:
if (PollSwitch() & 0x01)

BTW: Warum steht in der Zeile davor 'sw PollSwitch();'
Damit wird PollSwitch() zweimal aufgerufen und die Ergebnisse verworfen.

Georg

xyphrox
20.10.2005, 14:53
danke nur der zeigt mir
hallo3hallo4hallo5
an

also wären 3 schalter hinüber [-( :-k
komisch

ich geh jetzt mal auf die altmodische art ran
durchgangsprüfer ;)

besten dank

KlamseN
20.10.2005, 14:59
hmm, ist glaube ich in dem fall, bei 6 schaltern auch wesintlich einfacher :)