Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Minustemperaturen auf Display ausgeben Kategorie: Programmierung Basic (von Rene - 11.02.2004 20:27)
 Als Antwort auf Minustemperaturen auf Display ausgeben von Hardy - 10.02.2004 21:11
> 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

Bisherige Antworten:

Re: Minustemperaturen auf Display ausgeben (von Heino - 11.02.2004 21:28)