-
        

Ergebnis 1 bis 5 von 5

Thema: Probleme beim Pin Abfragen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.02.2008
    Beiträge
    18

    Probleme beim Pin Abfragen

    Anzeige

    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

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    29.02.2008
    Beiträge
    18
    hab den fehler gefunden. hatte versehentlich die zuweisung von pina.1 in der do loop schleife

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    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

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    29.02.2008
    Beiträge
    18
    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

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    29.02.2008
    Beiträge
    18
    ..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
  •