Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

zusammengesetzte arithmetische Ausdrücke Kategorie: Programmierung C (von ER - 26.08.2009 10:39)
Ich nutze:
C-Control Pro Mega32
Hallo zusammen,
bei meinen Aktivitäten zur Umsetzung meiner Programme von der CC1 auf die CC Pro
bin ich auf etwas gesto�en, was sehr fragwürdig ist:
Folgender Code lässt sich fehlerfrei compilieren.
Die Funktion liefert die Werte 0x0A für OK oder 01 - Fehler zurück.
Das Programm kommt aus der Schleife nicht mehr raus.
Der arithmetische Ausdruck wird anscheinend nicht korrekt
aufgelöst. Wird immer zu 1 berechnet.

void DS2482WIRE_WAITIDLE(void)
{
DS2482WT:
if ((DS2482GET_STATUS() & 1) > 0) goto DS2482WT;
}


Der Code funktioniert, wenn man die Berechung aus der Klammer
herauslöst:

void DS2482WIRE_WAITIDLE(void)
{
DS2482WT:
buffer=DS2482GET_STATUS() & 1;
if (buffer > 0) goto DS2482WT;
}

Was Ist da los? Also der B++ Compiler vom Stefan Tapertzhofen kann so etwas
problemlos bearbeiten.

mfg
Ellen


    Antwort schreiben


Antworten:

Re: zusammengesetzte arithmetische Ausdrücke (von PeterS - 26.08.2009 17:43)
    Re: zusammengesetzte arithmetische Ausdrücke (von ER - 27.08.2009 8:40)
        Re: zusammengesetzte arithmetische Ausdrücke (von PeterS - 27.08.2009 11:55)
            Re: zusammengesetzte arithmetische Ausdrücke (von ER - 28.08.2009 16:02)