-
-
Neuer Benutzer
Öfters hier
Probleme beim Pin Abfragen
hallo zusammen,
nachdem ich nun über 1000 zeilen spagetticode reingehackt habe, stehe ich vor einem problem und ich weis absolut nicht an was das liegt.
ich muss meine ausgangszustände im eeprom sichern und nach dem neustart wieder einlesen. das geht auch soweit. da man offensichtlich kein bit sondern nur ein byte im eeprom ablegen kann, hab ich so angefangen:
Dim Test1 As Byte
$eeprom
Label1:
Data 1
$data
in der variable test soll eigentlich nur ne 0 oder ne 1 hinterlegt werden.
diesen zustand möchte ich nach dem neustart wieder einem ausgang zuordnen. Und da fängt das problem an. Wenn ich von Hand PINA.1=0 setze, leuchtet mein Ausgang (da gegen Masse geschaltet).
Wenn ich allerdings PINA.1= Test1 schreibe, gehen alle Ausgänge an. Auch die Logik der Abfrage läuft genau anders rum.
Komme hier nicht mehr weiter.
Do
Pina.1 = Test1
Convert_strg = Str(test1)
Call Lcd_print(convert_strg , 5 , 70 , 2 , 1 , 1 , Yellow , Black)
Debounce Ping.0 , 0 , Schalter1 , Sub
Debounce Pind.7 , 0 , Eepromschreiben , Sub
If Pina.1 = 0 Then
Call Lcd_print( " " , 128 , 1 , 2 , 1 , 1 , White , Black)
Call Lcd_print( "Laut" , 138 , 1 , 2 , 1 , 1 , White , Black)
Test1 = 0
End If
If Pina.1 = 1 Then
Call Lcd_print( "Leise" , 128 , 1 , 2 , 1 , 1 , White , Black)
Test1 = 1
End If
Loop
Schalter1:
Toggle Porta.1
Return
Eepromschreiben:
Writeeeprom Test1 , Label1
Return
-
Neuer Benutzer
Öfters hier
hab den fehler gefunden. hatte versehentlich die zuweisung von pina.1 in der do loop schleife
-
Erfahrener Benutzer
Robotik Einstein
Hallo paul-stanley,
also, ich weiß nicht so ganz genau, was du da machen willst.
PA1 scheint einmal ein Eingang, dann wieder Ausgang zu sein, zumindest in deinem Code-Fragment.
Aber zu deiner eigentlichen Frage:
Das Speichern von Werten (z.B. in Test1) im EEPROM geht ja in Bascom leicht:
Dim Eeprom_test1 as Eram Byte
Dim Test1 As Byte
Am Programmanfang:
Test1 = Eeprom_test1
If Test1 = 255 Then 'EEPROM leer: Standardwerte annehmen!
Test1 = Standardwert
Eeprom_test1 = Standardwert
End If
Am Programmende bzw. da, wo Test1 gesichert werden soll:
Eeprom_test1 = Test1
Gruß Dirk
-
Neuer Benutzer
Öfters hier
hallo dirk,
danke für deine antwort. ich hab es gelöst bekommen und wir haben gleichzeitig gepostet 
sinn der sache war, den zustand vom PA1 im eprom zu sichern und beim neustart wieder herzustellen.
das war eine ganz schön geburt. aber nun weis ich wie der befehl toggle funktioniert und wie man werte ins eeprom schreibt und wieder ausliest.
wie mache ich es denn wenn ich zwischen 3 werten auf einem taster springen will ?
gruss martin
-
Neuer Benutzer
Öfters hier
..hab gerade mal in die eep datei geschaut....da steht ja gar kein wert drin..obwohl alles funktioniert.wie bekomme ich denn dann das erstemal meine werte rein wenn man da nichts editieren kann????
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen