PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] analogwert auf lcd anzeigen



29.07.2004, 23:16
Hi
mein problem ist es einen analogen sensorwert auf dem (applicaionboard)-display der c-control auszugeben. zwar versteh ich, wieman einen festen text oder so ausgibt, aber einem sich ständig änderndn wert klapps bei mir nicht mehr. ich stellmir das ziemlich schwer vor, kann mich aber auch täuschen (hoffentlich O:).
für tipps wäre ich dankbar

x-ryder
29.07.2004, 23:28
Hi,

Ich kenn mich zwar mit der C-Control nicht aus aber ich würde mal vermuten, das du eine kurze Wartezeit in dein Programm packen solltest, damit das LCD die Daten die es empfangen soll auch noch bekommt.

Martin

Red six
29.07.2004, 23:42
oder ne schleife!

Matthias
30.07.2004, 08:48
define lcd byteport[2]
define rw port[13]
define rs port[14]
define enable port[15]
define buffer byte
define parameter byte
define zahl word
define ziffer byte
define zaehler word
define a 97
define b 98
define c 99
define d 100
define e 101
define f 102
define g 103
define h 104
define i 105
define j 106
define k 107
define l 108
define m 109
define n 110
define o 111
define p 112
define q 113
define r 114
define s 115
define t 116
define u 117
define v 118
define w 119
define x 120
define y 121
define z 122
define ad1 ad[8]

gosub initialisierung
pause 10


#loop
zahl=ad1
gosub lcd_out
goto loop

#lcd_out
parameter=1
gosub whichline
ziffer=zahl/100
parameter=ziffer+48
gosub writeletter
zahl=zahl-ziffer*100
ziffer=zahl/10
parameter=ziffer+48
gosub writeletter
zahl=zahl-ziffer*10
ziffer=zahl
parameter=ziffer+48
gosub writeletter
return

#initialisierung
lcd=off
parameter=&h38:gosub command
lcd=&b00000010
tog enable
tog enable
parameter=&h28:gosub command
parameter=&h0c:gosub command

#clear
parameter=&h02:gosub command
parameter=&h02:gosub command
return

#lcd_shift
parameter=&b00011100
gosub command
pause 8
goto lcd_shift

#whichline
if parameter=1 then parameter=&h80
if parameter=2 then parameter=&hc0
goto command

#command
buffer=off
goto write_

#writeletter
buffer=&b00100000

#write_
lcd=buffer or (parameter shr 4)
tog enable
tog enable
lcd=buffer or (parameter and &h0f)
tog enable
tog enable
return

02.08.2004, 12:01
hallo,
danke nochmal für eure hilfe.


@matthias
wie kommst du gerade darauf:?

#lcd_out
parameter=1
gosub whichline
ziffer=zahl/100
parameter=ziffer+48
gosub writeletter
zahl=zahl-ziffer*100
ziffer=zahl/10
parameter=ziffer+48
gosub writeletter
zahl=zahl-ziffer*10
ziffer=zahl
parameter=ziffer+48
gosub writeletter
return


könnte man statt

tog enable
tog enable

auch einfach

pulse enable

schreiben?

Matthias
02.08.2004, 12:37
Der µC macht sich nicht aus Kommazahlen und Runden, also kann man getrost die letzten Ziffern mit /1und anzahl der ziffern in anzahl der Nullen wegnehmen. Dann muss man nurnoch +48 rechnen, da die ASCII-Zahlen um 48 Zeichen "Zurückhängen". Num muss man das ganze nochmal machen, wobei man aber berücksichtigen muss, dass man Das, das man gerade geschrieben hat nicht mitrechnet. Dazu subtrahiert man diese*1... von der Ursprungszahl.



könnte man statt

tog enable
tog enable

auch einfach

pulse enable

schreiben?


Eigentlich schon, aber mein LCD hat das manchmal nicht gerafft. Ich dachte nur, dass das vielleicht dann auch bei euch sein könnte...