
|
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 > Hallo zusammen ! Glaubt es mir bitte - in der mir ausgelieferten Software zum Board fehlte auch das abs( ) vor der Funktion "value" ! Daran habe ich lange herumgerödelt , denn in die Richtigkeit der mitgelieferten Programme hat man als Laie ja erst einmal Vertrauen . Aber es hat dann auch den Unsinn bei negativen Zahlen gegeben . Mit der Einführung von " abs(value) " gemäss der vorigen Antwort war das Problem dann aber behoben . Grüsse an die CC-ler...................Heino |
| Antwort schreiben |