Funktioniert leider nicht! Brauche ich vll. sonst noch etwaige besondere Anweisung für Bascom damit der Wert gespeichert wird?
Druckbare Version
Funktioniert leider nicht! Brauche ich vll. sonst noch etwaige besondere Anweisung für Bascom damit der Wert gespeichert wird?
Passiert gar nichts? Oder kommt beim Kompilieren eine Fehlermeldung?Zitat:
Zitat von Maxxtro
Grüße
Thomas
Neinein, das Programm lässt sich schon kompilieren! Es wird auch der Höchstwert angezeigt, aber nach dem ausschalten ist wieder alles weg :-k
Dim Eram_bootzaehler As Eram Long ' Adr 02,03,04,05
Dim Ram_bootzaehler As Long
/---------------------------------------------------
Ram_bootzaehler = Eram_bootzaehler
Incr Ram_bootzaehler
Eram_bootzaehler = Ram_bootzaehler
/--------------------------------------------------
Das geht sicher .
Bei jedem Booten wird der Zaehler um eins hochgezählt.
Gento
Und das hat WAS mit meiner Aufgabe, eine Variable zu speichern, zu tun? 8-[
Soll ich den Teil einfach oben mit ins Programm kopieren? Was bewirkt das ganze?
@Maxxtro
Er meint warscheinlich du sollst mal diesen Code versuchen und sehen obs klappt. Vielleicht ist ja auch das EEPROM defekt.
Gruß
Thomas
Funktioniert! Zählt bei jedem einschalten eins hoch!
Hmm. Zeig am Besten mal deinen kompletten nichtfunktionierenden Code.
Gruß
Thomas
Code:$regfile = "m32def.dat"
$crystal = 16000000
' LCD konfigurieren Port auf Ausgabe setzten und Pin's entsprechend zuordnen
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 4
Config Lcdbus = 4
Config Portd.0 = Output
Portd.0 = 1
Deflcdchar 1 , 8 , 20 , 8 , 32 , 32 , 32 , 32 , 32
Cursor Off
' Pin für 1wire Schnittstelle festlegen, Schnittstelle wird von BASCOM durch Software realisiert
Config 1wire = Portd.7
Dim Dsid(24) As Byte
' Die Adresse meines DS1820 die ich vorher ermittelt habe
Dsid(1) = &H10 : Dsid(2) = &H99 : Dsid(3) = &H4E : Dsid(4) = &H71 : Dsid(5) = &H01 : Dsid(6) = &H08 : Dsid(7) = &H00 : Dsid(8) = &H6D
'^= 1
Dsid(9) = &H10 : Dsid(10) = &H3D : Dsid(11) = &H48 : Dsid(12) = &H71 : Dsid(13) = &H01 : Dsid(14) = &H08 : Dsid(15) = &H00 : Dsid(16) = &H71
'^= 2
Dsid(17) = &H10 : Dsid(18) = &H4D : Dsid(19) = &H47 : Dsid(20) = &H71 : Dsid(21) = &H01 : Dsid(22) = &H08 : Dsid(23) = &H00 : Dsid(24) = &H86
'^= 3
Dim Sc(9) As Byte
Dim Sc2(9) As Byte
Dim Sc3(9) As Byte
Dim T As Byte
Dim T2 As Byte
Dim T3 As Byte
Dim H As Byte
Dim Flag As Bit
Do
Wait 1
' Alle angeschlossenen DS1820 zum Messen veranlassen
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
' 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
T = Sc(1)
If Sc(2) > 0 Then
T = 256 - T
End If
T = T / 2
Locate 1 , 1
Lcd "T:"
If Sc(2) > 0 Then Lcd "-";
Lcd T;
If Sc(1).0 = 1 Then
Lcd ".5" ; Chr(1) ; " / "
Else
Lcd ".0" ; Chr(1) ; " / "
End If
End If
Waitms 1
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
' Den gewünschten Sensor auswählen
1wverify Dsid(9)
' Kommando READ SCRATCHPAD
1wwrite &HBE
Sc2(1) = 1wread(9)
If Sc2(9) = Crc8(sc2(1) , 8) Then
T2 = Sc2(1)
If Sc2(2) > 0 Then
T2 = 256 - T2
End If
T2 = T2 / 2
Locate 1 , 11
If Sc2(2) > 0 Then Lcd "-";
Lcd T2 ;
If Sc2(1).0 = 1 Then
Lcd ".5" ; Chr(1)
Else
Lcd ".0" ; Chr(1)
End If
End If
' Ausgabe alle 0,75 Sekunden
Waitms 1
If T > H Then Set Flag
If Flag = 1 Then
H = T
Writeeeprom H
Reset Flag
End If
Locate 4 , 1
Lcd H
Loop
End
Dim As Eram vermisse ich für's Eram beschreiben.
Gento