- LiFePO4 Speicher Test         
Ergebnis 1 bis 2 von 2

Thema: Hilfe mein AT90s2313 hängt sich auf

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.09.2005
    Beiträge
    32

    Hilfe mein AT90s2313 hängt sich auf

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Leute ich hab da ein Problem und komme nicht weiter. Mein Program läuft soweit. Wenn ich zB 00 01 00 00 05 00 an dem Eingangspin bekomme leuchte kurz meine LED am Portb.0 auf. das ist so richtig. mit den anderen funktioniert es auch. Jetzt möchte ich wenn ein bestimmter Wert kommt alle nacheinander aufleuchten lassen. das habe ich mit WAITMS 300 hinbekommen. Doch wenn in dieser Zeit ein weitere Wert bei INPUTBIN kommt, hängt sich alles auf. Also ist WAITMS falsch.Wie kann man das Problem anders lösen ?
    Hoffe sehr auf eure Mithilfe und erst einmal DANKE


    Hier mal mein Code.

    Ddrd = &B0000000
    Ddrb = &B0111111

    Dim A As Byte
    Dim B As Byte
    Dim C As Byte
    Dim Z As Byte

    Declare Sub Weiter()

    Portb.0 = 0
    Portb.1 = 0
    Portb.2 = 0
    Portb.3 = 0
    Portb.4 = 0
    Portb.5 = 0

    Config Timer0 = Timer , Prescale = 1024
    Const Reload = 195
    Enable Timer0 'Hier werden die Timer aktiviert
    Enable Interrupts
    On Timer0 Zeit
    Z = 0


    Do
    Do
    Do
    Inputbin C , B , A



    Select Case B
    Case &H01 : Weiter
    Case Else : Loop
    End Select
    Loop




    Sub Weiter():
    If A = &H05 Then
    Portb.0 = 1
    Start Timer0
    End If

    If A = &H06 Then
    Portb.1 = 1
    Start Timer0
    End If

    If A = &H07 Then
    Portb.2 = 1
    Start Timer0
    End If

    End Sub
    Loop

    '-----------------------------------------------------------------------------
    Zeit:

    Load Timer0 , Reload
    Incr Z
    If Z = 6 Then
    Z = 0
    Stop Timer0
    Portb = 0
    End If
    Return

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    26.01.2005
    Ort
    Neuburg / Donau
    Alter
    63
    Beiträge
    80
    Hallo Looser,
    zu deinem Problem habe ich den Verdacht, daß du in die input Falle gestolpert bist.

    siehe Roland Walter: AVR Microcontroller Lehrbuch S. 78:

    " Will man mit input z.B. Zeichen in einen String einlesen, der mit 10 Bytes Länge dimensioniert wurde, dann kehrt input erst dann zurück, wenn tatsächlich 10 Bytes empfangen wurden, vorher nicht. "

    "Bis dahin kann man nichts, aber auch gar nichts anderes tun"

    Ich bin selbst Anfänger und kann dir da nicht viel weiterhelfen. Lies mal die Seite durch, vieleicht kommst du ja drauf, was falsch war.
    Gruß Bernd (Gandalf)

    Schrott im Keller macht das Erfinden schneller. ( Dietrich Drahtlos )

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress