
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Hallo > Ich habe ein kleines Problem mit der Darstellungen von Aussentemperaturen im Minusbereich. Ich benutze folgendes Programm zur Anzeige auf dem Display: >   lcd_param = NULL + Temp2_LCD / 1000 : gosub LCD_WRITECHAR >   lcd_param = NULL + (Temp2_LCD mod 1000) / 100 : gosub LCD_WRITECHAR >   lcd_param = PUNKT : gosub LCD_WRITECHAR >   lcd_param = NULL + (Temp2_LCD mod 100) / 10: gosub LCD_WRITECHAR >   lcd_param = GRAD : gosub LCD_WRITECHAR >   lcd_param = C_ : gosub LCD_WRITECHAR > mit einer Temperaturtabelle in der Art: > -250 > -170 > -90 > -10 > 70 > 150 > 230 > 310 > Bis 150 herunter (1,5 °C) zeigt es richtig an. 70 (0,7°C) und die Minusgrade zeigt es aber nicht mehr an. Wie könnte man sowas lösen? > > MfG > Hardy Nachfolgend Beispiel Unterprogramm #WRITEVALUE aus der Sammlung von Conrad mit dem deine Probleme gelöst sein müßten define LEERZ &H20 define MINUS &H2D #WRITEVALUE output = abs(value) ' negatives Vorzeichen oder Leerzeichen if value < 0 then lcd_param = MINUS else lcd_param = LEERZ gosub LCD_WRITECHAR ' Zehntausender-Dezimalstelle oder Leerzeichen (Ausblenden fuehrender Nullen) if abs(value) >= 10000 then lcd_param = NULL + output/10000 else lcd_param = LEERZ gosub LCD_WRITECHAR output = output mod 10000 ' Tausender-Dezimalstelle oder Leerzeichen if abs(value) >= 1000 then lcd_param = NULL + output/1000 else lcd_param = LEERZ gosub LCD_WRITECHAR output = output mod 1000 ' Hunderter-Dezimalstelle oder Leerzeichen if abs(value) >= 100 then lcd_param = NULL + output/100 else lcd_param = LEERZ gosub LCD_WRITECHAR output = output mod 100 ' Zehner-Dezimalstelle oder Leerzeichen if abs(value) >= 10 then lcd_param = NULL + output/10 else lcd_param = LEERZ gosub LCD_WRITECHAR ' einer Dezimalstelle oder Leerzeichen lcd_param = NULL + output mod 10 gosub LCD_WRITECHAR return MfG Rene |
| Antwort schreiben |