Hallo,
bin neu hier und bräuchte Hilfe.
Ich betreibe eine Wetterstation (ursprungwetter.de). Zur Anzeige der Temperaturen benutzte ich zusätzlich ein 16x4 Diplay.
Das funktioniert auch prima.
Da mein "Können" beim Programmieren nicht besonders hoch ist, hab ich den Programmcode im Netz zusammen gesucht.
Nun wollte ich dafür gern ein Grafikdisplay nutzen und anstelle der Bezeichnungen "WZ : KÜ usw.
eine Symbol o. Grafik nehmen. Ohne groß zu überlegen hab ich mir dieses Display gekauft:
"EA DOGXL160-7" von Electroni Assembly. Es hatt einen Kontroller UC1610 und mit integrierten Grafik Ram.
Nun versuche ich vergeblich mich da rein zu fitzen. Ich hab keine Ahnung wie die Datenübertragung erfolgen muss(2wire Pc-Mode oder
4 wire 8-Bit Mode oder...), geschweige denn wie der Programmcode aussehen sollte.
Könntet ihr mir bitte einen Tipp geben, damit ich in die Gänge komm?
Gruß
Bernd
bin neu hier und bräuchte Hilfe.
Ich betreibe eine Wetterstation (ursprungwetter.de). Zur Anzeige der Temperaturen benutzte ich zusätzlich ein 16x4 Diplay.
Das funktioniert auch prima.
Da mein "Können" beim Programmieren nicht besonders hoch ist, hab ich den Programmcode im Netz zusammen gesucht.
Code:
'WX3_Bernd_16 Version für ATMEGA8
'$sim
$regfile = "m8def.DAT"
$crystal = 16000000
$baud = 9600
$hwstack = 64
$swstack = 128
$framesize = 64
Dim S As Byte
Dim M As Byte
Dim H As Byte
Dim H1 As String * 2
Dim M1 As String * 2
Dim S1 As String * 2
Dim C As Byte
Dim I As Byte
Dim A As Byte
Dim S As Byte
Dim N As Byte
Dim Leng As Byte
Dim Wert As String * 5
Dim Temp1 As String * 5
Dim Temp2 As String * 5
Dim Temp3 As String * 5
Dim Temp4 As String * 5
Dim Temp5 As String * 5
Dim Temp6 As String * 5
Dim Tmp As String * 5
Dim Feu As String * 5
Dim Wnd As String * 5
Dim Upc As Word
Dim Upcs As String * 5
Declare Sub Wait_for_string(byval S As String)
Declare Function Read_string() As String
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 4
Cls
Cursor Off
Upc = 1
Config Serialin = Buffered , Size = 100 'Konfig. der ser. Eingabe
Enable Interrupts
Cls
Locate 1 , 1
Lcd "****************"
Locate 2 , 1
Lcd " Private"
Locate 3 , 1
Lcd " Wetterstation "
Locate 4 , 1
Lcd "****************"
Wait 2
Do
Debounce Tset , 0 , Stellen , Gosub
Loop
Call Wait_for_string( "$1;") 'Startzeichen "$1;"
Wert = Read_string() 'immer "1"
Wert = Read_string() 'Timestamp
Temp1 = Read_string() 'Temp.Diele
Leng = Len(temp1) - 1
Temp1 = Left(temp1 , Leng)
Temp2 = Read_string() 'Temp. Kessel
Leng = Len(temp2) - 1
Temp2 = Left(temp2 , Leng)
Temp3 = Read_string() 'Temp. Bad
Leng = Len(temp3) - 1
Temp3 = Left(temp3 , Leng)
Temp4 = Read_string() 'Temp. Küche
Leng = Len(temp4) - 1
Temp4 = Left(temp4 , Leng)
Temp5 = Read_string() 'Temp. Wohnzimmer
Leng = Len(temp5) - 1
Temp5 = Left(temp5 , Leng)
Temp6 = Read_string() 'Temp. Warmwasser
Leng = Len(temp6) - 1
Temp6 = Left(temp6 , Leng)
Wert = Read_string() 'Temp7
Wert = Read_string() 'Temp8
Wert = Read_string() 'Humi1
Wert = Read_string() 'Humi2
Wert = Read_string() 'Humi3
Wert = Read_string() 'Humi4
Wert = Read_string() 'Humi5
Wert = Read_string() 'Humi6
Wert = Read_string() 'Humi7
Wert = Read_string() 'Humi8
Tmp = Read_string()
Leng = Len(tmp) - 1 'Kombi_Temp
Tmp = Left(tmp , Leng)
Feu = Read_string()
Leng = Len(feu) - 1 'Kombi_Humi
Feu = Left(feu , Leng)
Wnd = Read_string()
Leng = Len(wnd) - 1 'Kombi_Wind
Wnd = Left(wnd , Leng)
Wert = Read_string() 'Nied
Wert = Read_string() 'Rain
'Tmp = "23,4" '###################
'Feu = "49" '###################
'Wnd = "123,4" '###################
'Aufbereitung
'---------------------------------------------
Upcs = Str(upc)
If Len(upcs) = 1 Then Upcs = "00" + Upcs
If Len(upcs) = 2 Then Upcs = "0" + Upcs
Cls
Locate 1 , 1
Lcd "A:" ; Tmp ; "{223} "
Locate 1 , 8
Lcd "W:" ; Wnd ; "Kmh "
Locate 2 , 1
Lcd "Wz:" ; Temp5 ; "{223}"
Locate 2 , 9
Lcd "Ku:" ; Temp4 ; "{223}"
Locate 3 , 1
Lcd "Di:" ; Temp1 ; "{223}"
Locate 3 , 9
Lcd "Ba:" ; Temp3 ; "{223}"
Locate 4 , 1
Lcd "Ke:" ; Temp2 ; "{223}"
Locate 4 , 9
Lcd "Ww:" ; Temp6 ; "{223}"
Upc = Upc + 1
If Upc = 1000 Then Upc = 1
Loop
End
'=== Subroutines===
'------------------------------------------------------
Sub Wait_for_string(byval S As String) As String
Local Ii As Byte
Local Cc As Byte
Ii = 1
M1:
Cc = Waitkey()
If Cc <> Mid(s , Ii , 1) Then
Goto M1
Else
Incr Ii
If Ii > Len(s) Then Goto M2
Goto M1
End If
M2:
End Sub
'------------------------------------------------------
Function Read_string() As String
Local Cc As Byte
Local Ss As String * 10
Ss = ""
Do
Cc = Waitkey()
Ss = Ss + Chr(cc)
Loop Until Cc = ";"
Read_string = Left(ss , 10)
End Function
'------------------------------------------------------------------------------
Nun wollte ich dafür gern ein Grafikdisplay nutzen und anstelle der Bezeichnungen "WZ : KÜ usw.
eine Symbol o. Grafik nehmen. Ohne groß zu überlegen hab ich mir dieses Display gekauft:
"EA DOGXL160-7" von Electroni Assembly. Es hatt einen Kontroller UC1610 und mit integrierten Grafik Ram.
Nun versuche ich vergeblich mich da rein zu fitzen. Ich hab keine Ahnung wie die Datenübertragung erfolgen muss(2wire Pc-Mode oder
4 wire 8-Bit Mode oder...), geschweige denn wie der Programmcode aussehen sollte.
Könntet ihr mir bitte einen Tipp geben, damit ich in die Gänge komm?
Gruß
Bernd