- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 8 von 8

Thema: Lauflicht so nicht möglich?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.11.2004
    Ort
    Nahe Bremen-Nord
    Alter
    34
    Beiträge
    58

    Lauflicht so nicht möglich?

    Anzeige

    Powerstation Test
    Nabend,

    Ich habe vorgestern mein erstes AVR board aufgebaut. es ist ein 1:1 nachbau vom myavr board. funktioniert auch alles ganz prima. jetzt habe ich um Bascom zu lernen ein kleines lauflichtprogramm gebastelt. es werden am anfang drei taster abgefragt und danach das betroffene lauflicht gestartet. aus irgendeinem grund den ich nicht finden kann fängt, wenn ich den atmega starte, lauflicht 2 an zu starten. findet jemand den fehler? wäre auch nett wenn mir jemand eine elegantere lösung zeigen könnte für so ein programm. Hier noch mein code:
    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    '###Declarationen###
    Config Portc = Output
    Config Portd = Input
    Portd = 1
    
    Led1 Alias Portc.5
    Led2 Alias Portc.4
    Led3 Alias Portc.3
    Led4 Alias Portc.2
    Led5 Alias Portc.1
    Led6 Alias Portc.0
    
    '###Hauptschleife###
    
    Do
    If Pind.0 = 0 Then
    Gosub Laufa
    End If
    If Pind.1 = 0 Then
    Gosub Laufb
    End If
    If Pind.2 = 0 Then
    Gosub Laufc
    End If
    Loop
    
    '###Lauflichter###
    Laufa:
    bla bla bla
    Loop
    
    Return
    
    '----------
    
    Laufb:
    Do
    bla bla bla
    Loop
    
    Return
    
    '----------
    
    Laufc:
    Do
    bla bla bla
    Loop
    
    Return
    MfG Omeg@
    Frohe Weihnachten

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    25.09.2004
    Alter
    33
    Beiträge
    54
    funktionierts, wenn du das "loop" in den subroutinen weglässt? also z.B.

    Laufa:
    bla bla bla
    Return

    mfg Maggus

    PS: dein "lauflicht" wird dann allerdings nur einmal durchlaufen. wenn du möchtest, dass es durchlaufen wird, bis ein anderes ausgewählt wird, dann musst du noch if-abfragen in die einzelnen subroutinen einbauen

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Mit den felhelnden Ausgaben im Code und nem Fetten Fehler den der compiler erst garnicht schluckt kann das wohl kaum das echte Programm sein .

    Wie wärs denn mal damit ?

    So kann man nichts sehen.
    Die Lichterroutinen kannste aber weglassen wie bisher.

    Ich gehe mal davon aus das die Taste vom Port nach Masse schalten ja ?
    Statt der Pullups würde ich doch lieber externe Widerstände nach Vcc schalten .
    Is erstmal sicherer.

    Spannungsquelle der Schalunt ist stabil ?
    Also kein Stcknetzteil oder sowas ?
    Wenn Spannungsregler ala 78xx Haumichtot dann auch schön brav mit 100nF am Ausgang abgeblockt damit er nicht zum Sender mutiert ?

    Yo,den anderen fällt vieleicht noch mehr ein.
    Gruß
    Ratber

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    29.11.2004
    Ort
    Nahe Bremen-Nord
    Alter
    34
    Beiträge
    58
    Moin,

    erstmal danke für die antworten. @ ratber: wie meinst du das mit dem echten programm? und wo is da ein fetter fehler? ich bin wie gesagt noch anfänger und kann dir nicht ganz folgen. vielleicht erklärst du mir das ja mal.
    MfG Omeg@

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    25.09.2004
    Alter
    33
    Beiträge
    54
    so...dieser code hier sollte jetzt funktionieren. du kannst zum testen einfach mal statt "'code für lichter" z.B. "print "laufa"" einsetzen, um fehler bei der verkabelung der leds auszuschließen.
    das lauflicht deiner wahl läuft mit diesem code hier so lange, bis du ein anders auswählst.

    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    '###Declarationen###
    Config Portc = Output
    Config Portd = Input
    Portd = 1
    
    Led1 Alias Portc.5
    Led2 Alias Portc.4
    Led3 Alias Portc.3
    Led4 Alias Portc.2
    Led5 Alias Portc.1
    Led6 Alias Portc.0
    
    '###Hauptschleife###
    
    Do
    If Pind.0 = 0 Then
    Gosub Laufa
    End If
    If Pind.1 = 0 Then
    Gosub Laufb
    End If
    If Pind.2 = 0 Then
    Gosub Laufc
    End If
    Loop
    
    '###Lauflichter###
    Laufa:
    
    'code für lichter
    
    
    If Pind.0 = 0 Then
    Gosub Laufa
    End If
    If Pind.1 = 0 Then
    Gosub Laufb
    End If
    If Pind.2 = 0 Then
    Gosub Laufc
    End If
    Goto Laufa
    
    
    '----------
    
    Laufb:
    
    'code für lichter
    
    
    If Pind.0 = 0 Then
    Gosub Laufa
    End If
    If Pind.1 = 0 Then
    Gosub Laufb
    End If
    If Pind.2 = 0 Then
    Gosub Laufc
    End If
    Goto Laufb
    
    '----------
    
    Laufc:
    
    'code für lichter
    
    
    If Pind.0 = 0 Then
    Gosub Laufa
    End If
    If Pind.1 = 0 Then
    Gosub Laufb
    End If
    If Pind.2 = 0 Then
    Gosub Laufc
    End If
    Goto Laufc
    mfg Markus

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2005
    Beiträge
    175
    Naja, eigentlich macht Dein Mega 8 doch nur, was Du ihm erzählst!

    Schau mal hier, Deine Zuweisung lautet:

    Portd = 1

    Portd ist ein Byte, somit hat Portd den Status &B00000001, also Portd.0=1 -> der Rest Null, also wird die zweite Subroutine aufgerufen, und da bleibt er ja dann bis zum Ende aller Tage...

    Versuch´s im Init mal mit Portd=255 bzw. Portd=&B11111111

    Scheinbar hast Du aber auch noch ein Hardware-Problem, denn eigentlich müsste die Beschaltung am Portd ja direkt über den Init-Wert drüberbügeln.
    Wie hast Du Deine Taster angeschlossen?
    Mess doch mal nach, ob die Taster ihren jeweiligen Port tatsächlich auf GND ziehen.

    Der Compiler-Error wird wohl daher kommen, dass Du in Deinem geposteten Code "blablabla" eingetragen hast.
    Wenn man ein Problem mit einem Programm hat, ist es erheblich sinnvoller, den kompletten Code zu posten, dann können Dich die hilfreichen Geister hier viel besser untersützen!

    Oder sind Deine Lauflicht-Routinen derartig innovativ, dass Du sie lieber geheim halten möchtest?

    Viele Grüße

    Torsten

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Zitat Zitat von Omeg@
    Moin,

    erstmal danke für die antworten. @ ratber: wie meinst du das mit dem echten programm? und wo is da ein fetter fehler? ich bin wie gesagt noch anfänger und kann dir nicht ganz folgen. vielleicht erklärst du mir das ja mal.
    MfG Omeg@
    Hab ich doch schon.

    Hat sich aber auch schon erledigt
    Gruß
    Ratber

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    29.11.2004
    Ort
    Nahe Bremen-Nord
    Alter
    34
    Beiträge
    58
    vielen dank für die antworten!
    ich habe meinen code jetzt etwas geändert und es funktoiniert so wie ich es wollte!!! ist schon gut zu wissen das man hier so gut beraten wird *schleim* ich poste mal meinen funktionierenden code für andere anfänger mit dem gleichen problem:
    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    '###Declarationen###
    
    Config Portc = Output
    Config Portd = Input
    Portd.0 = 1
    Portd.1 = 1
    Portd.2 = 1
    
    Led1 Alias Portc.5
    Led2 Alias Portc.4
    Led3 Alias Portc.3
    Led4 Alias Portc.2
    Led5 Alias Portc.1
    Led6 Alias Portc.0
    
    '###Hauptschleife###
    
    Do
    If Pind.0 = 0 Then
    Gosub Laufa
    End If
    If Pind.1 = 0 Then
    Gosub Laufb
    End If
    If Pind.2 = 0 Then
    Gosub Laufc
    End If
    Loop
    
    '###Lauflichter###
    Laufa:
    ' Lauflicht
    
    Goto Laufa
    
    '----------
    
    Laufb:
    ' Lauflicht
    
    Goto Laufb
    
    '----------
    
    Laufc:
    ' Lauflicht
    
    Goto Laufc
    Das "' Lauflicht" muss dann mit entsprechendem code ausgetauscht werden. ich hab grad festgestellt das man das auch mit loop machen kann. dann muss nur goto weg gelassen werden.
    MfG Omeg@

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress