Guten Tag an Alle,
ich habe an Euch eine Frage. Ich bin neu im Mikrokontoller- und Bascom-bereich. Ich möchte Temperaturen messen mit ds1820 und atmega8.
Die Schaltung und den Code habe ich schon. Aber der Code zeigt die Temperatur nur auf einem LCD. Aber ich möchte, dass die Temperatur nur auf
Bascom-Terminal angezeigt wird. Wie kann ich den Code ändern um das zu erreichen.
Danke im Voraus
CODE:
CodeBox BASCOM
ich habe an Euch eine Frage. Ich bin neu im Mikrokontoller- und Bascom-bereich. Ich möchte Temperaturen messen mit ds1820 und atmega8.
Die Schaltung und den Code habe ich schon. Aber der Code zeigt die Temperatur nur auf einem LCD. Aber ich möchte, dass die Temperatur nur auf
Bascom-Terminal angezeigt wird. Wie kann ich den Code ändern um das zu erreichen.
Danke im Voraus
CODE:
CodeBox BASCOM
' Beispiel für das myAVR Board 1 & 2 mit LCD und 1wire Temperatursensor an Pin 5 von Port C
$regfile = "m8def.dat"
$crystal = 3686411
' LCD konfigurieren Port auf Ausgabe setzten und Pin's entsprechend zuordnen
Ddrd = &HFF
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
' Pin für 1wire Schnittstelle festlegen, Schnittstelle wird von BASCOM durch Software realisiert
Config 1wire = Portc.5
Dim Dsid(8) As Byte
' Die Adresse meines DS1820 die ich vorher ermittelt habe
Dsid(1) = &H10 : Dsid(2) = &H68 : Dsid(3) = &H17 : Dsid(4) = &H25 : Dsid(5) = &H01 : Dsid(6) = &H08 : Dsid(7) = &H00 : Dsid(8) = &H98
Dim Sc(9) As Byte
Dim T As Integer
Dim T1 As Integer
Dim I As Byte
Cls
Cursor Off
Locate 1 , 1 : Lcd "Mein Termometer"
Do
' Alle angeschlossenen DS1820 zum Messen veranlassen
1wreset
1wwrite &HCC
1wwrite &H44
Waitus 200
' Den gewünschten Sensor auswنhlen
1wverify Dsid(1)
' Kommando READ SCRATCHPAD
1wwrite &HBE
Sc(1) = 1wread(9)
If Sc(9) = Crc8(sc(1) , 8) Then
' Genauere Temperaturberechnung auf 0,1 °C
I = Sc(1) And 1
If I = 1 Then Decr Sc(1)
T = Makeint(sc(1) , Sc(2))
T = T * 50
T = T - 25
T1 = Sc(8) - Sc(7)
T1 = T1 * 100
T1 = T1 / Sc(8)
T = T + T1
T = T / 10
' Temperatur in 0,1 Grad Schritten ausgeben
Locate 2 , 1
Lcd T ; " Grad"
Else
' Wenn Fehler Scratchpad zur Kontrolle Hexadezimal ausgeben
Locate 2 , 1
' Es passen nur 8 Byte auf das Display
For I = 1 To 8
Lcd Hex(sc(i))
Next
End If
' Ausgabe alle 0,5 Sekunden
Waitms 500
Loop
End