Rabenauge
04.04.2010, 17:28
Hallo zusammen.
Ich sitze ein einem etwas längeren Programm für meinen NIBOBee.
Im Grunde soll (weiter bin ich da gerade noch nicht) ein gewünschter Weg eingegeben werden, mittels Fühler nach vorne oder nach hinten (mehr oder weniger eben), das funktioniert auch.
fahrstrecke ist ein uint16_t und wird beim Start mit 0 gefüttert.
Nun kann ich mittels der Fühler diese Zahl verändern, sie wird in Zehnerschritten erhöht oder eben erniedrigt.
Den aktuellen Wert sehe ich auch auf dem Display, es funktioniert auch, wenn fahrstrecke kleiner als 0 ist, dann werden eben negative Werte angezeigt.
Nun aber möchte ich zusätzlich die LED`s zuschalten, als Hinweis, einfach, damit angezeigt wird: hey, das gibt ne Rückwärtsfahrt.
Also: wenn fahrstrecke kleiner als Null wird, sollen die hinteren leuchten, wenn fahrstrecke grösser 0 ist, die vorderen.
if(fahrstrecke<0) // Weg negativ, also rückwärts?
{
led_set(LED_R_YE,1);
led_set(LED_L_YE,1);
led_set(LED_R_RD,0);
led_set(LED_L_RD,0);
}
if(fahrstrecke>0) // Weg positiv, also vorwärts
{
led_set(LED_R_RD,1);
led_set(LED_L_RD,1);
led_set(LED_R_YE,0);
led_set(LED_L_YE,0);
}
Merkwürdiger weise aber gehen _immer_ bei Werten ungleich Null die vorderen Lichter an, die hinteren nie!
Interpretiert der Compiler eine negative Zahl als grösser Null?
Ich füchte, der Vergleich ist falsch notiert, wie gehts richtig?
Ich sitze ein einem etwas längeren Programm für meinen NIBOBee.
Im Grunde soll (weiter bin ich da gerade noch nicht) ein gewünschter Weg eingegeben werden, mittels Fühler nach vorne oder nach hinten (mehr oder weniger eben), das funktioniert auch.
fahrstrecke ist ein uint16_t und wird beim Start mit 0 gefüttert.
Nun kann ich mittels der Fühler diese Zahl verändern, sie wird in Zehnerschritten erhöht oder eben erniedrigt.
Den aktuellen Wert sehe ich auch auf dem Display, es funktioniert auch, wenn fahrstrecke kleiner als 0 ist, dann werden eben negative Werte angezeigt.
Nun aber möchte ich zusätzlich die LED`s zuschalten, als Hinweis, einfach, damit angezeigt wird: hey, das gibt ne Rückwärtsfahrt.
Also: wenn fahrstrecke kleiner als Null wird, sollen die hinteren leuchten, wenn fahrstrecke grösser 0 ist, die vorderen.
if(fahrstrecke<0) // Weg negativ, also rückwärts?
{
led_set(LED_R_YE,1);
led_set(LED_L_YE,1);
led_set(LED_R_RD,0);
led_set(LED_L_RD,0);
}
if(fahrstrecke>0) // Weg positiv, also vorwärts
{
led_set(LED_R_RD,1);
led_set(LED_L_RD,1);
led_set(LED_R_YE,0);
led_set(LED_L_YE,0);
}
Merkwürdiger weise aber gehen _immer_ bei Werten ungleich Null die vorderen Lichter an, die hinteren nie!
Interpretiert der Compiler eine negative Zahl als grösser Null?
Ich füchte, der Vergleich ist falsch notiert, wie gehts richtig?