- Labornetzteil AliExpress         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 40

Thema: Servo steuern

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    31.01.2004
    Beiträge
    585
    Anzeige

    LiFePo4 Akku selber bauen - Video
    @linux_80

    Kannst du mal deinen "Sende"-Code posten?

    Also den Code, womit du per Print beliebig viele Befehle sendest.
    Bei mir sendet das Programm anscheinend nur einmal.

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Aja,
    SendeCode hab ich jetz keinen, habs mit dem PC probiert,
    aber ich denke, das deine Schleife zum senden doch sehr viele Prints macht in der Zeit in der der Eingang 0 ist.
    Was hängt da an den Eingängen, sind die Taster entprellt,
    evtl. den Code so umstellen, das der Print nur ausgeführt wird, wenn der Eingang von 1 auf 0 wechselt, und da auch nur einmal.

    Kannst Du zum testen die AVRs mit dem PC verbinden, stelle mir so die Fehlersuche einfacher vor.

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    31.01.2004
    Beiträge
    585
    "Kannst Du zum testen die AVRs mit dem PC verbinden, stelle mir so die Fehlersuche einfacher vor."

    Hm jetzt nicht, kann daweil nicht löten.


    "aber ich denke, das deine Schleife zum senden doch sehr viele Prints macht in der Zeit in der der Eingang 0 ist.
    Was hängt da an den Eingängen, sind die Taster entprellt,
    evtl. den Code so umstellen, das der Print nur ausgeführt wird, wenn der Eingang von 1 auf 0 wechselt, und da auch nur einmal. "

    Jo das tut sie definitiv! Kannst du mir einen Beispielcode geben, so wie du es meinst?
    Die Taster sind standard auf high (1 +), und wenn der Taster gedrückt wird auf low (0 GND)

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    31.01.2004
    Beiträge
    585
    Meine neuen Codes, funktioniert immer noch nicht:

    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 9600
    
    Config Pind.5 = Input
    Config Pind.6 = Input
    Dim X As Integer
    Dim Y As Integer
    
    X = 1
    Y = 2
    
    Main:
    Do
    If Pind.5 = 0 Then Goto Send1
    If Pind.6 = 0 Then Goto Send2
    Loop
    
    Send1:
    Print X
    Goto Main
    
    Send2:
    Print Y
    Goto Main
    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 9600
    
    Config Portb = Output
    
    Dim X As Integer
    
    Portb.5 = 0
    
    Main:
    Do
    Input , X
    If X = 1 Then Goto Loop1
    If X = 2 Then Goto Loop2
    Loop
    
    Loop1:
    Portb.5 = 1
    Goto Main
    
    Loop2:
    Portb.5 = 0
    Goto Main

    Nach anlegen von Spannung an beide AVR kann ich genau einmal einen Taster drücken, beide reagieren, aber nach einem Tastendruck ist schluss.

    Was ist da nur falsch?

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    70
    Beiträge
    277
    Hallo,

    Zitat Zitat von ShadowPhoenix
    Meine neuen Codes, funktioniert immer noch nicht:

    .....

    Nach anlegen von Spannung an beide AVR kann ich genau einmal einen Taster drücken, beide reagieren, aber nach einem Tastendruck ist schluss.

    Was ist da nur falsch?
    Du springst aus einer Do...Loop Schleife einfach mit einem Goto heraus. Das geht natürlich nicht. Do...Loop verläßt man mit Exit Loop. In Deinem Programm kommt der Programmcounter ja sofort durcheinander. Das kann also nur einmal funktionieren.

    Ändere Deine Labels in Subs und schon geht es.

    Henrik

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Moin,
    gegenüber dem alten code hat sich aber nicht wirklich was geändert.
    Ich hab das jetzt doch mal einegetippt, den Sendecode,
    und muss sagen das der ja läuft, hab den Taster zwar nur mit 'nem Kabel gegen Masse simuliert und die ausgabe zum PC gesendet, aber es kommt was, nicht nur einmal.
    Ich kann meine Boards jetzt nicht zusammenhängen, da ich nur ein Netzteil da hab.

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    70
    Beiträge
    277
    Zitat Zitat von linux_80
    Moin,
    gegenüber dem alten code hat sich aber nicht wirklich was geändert.
    Ich hab das jetzt doch mal einegetippt, den Sendecode,
    und muss sagen das der ja läuft, hab den Taster zwar nur mit 'nem Kabel gegen Masse simuliert und die ausgabe zum PC gesendet, aber es kommt was, nicht nur einmal.
    Ich kann meine Boards jetzt nicht zusammenhängen, da ich nur ein Netzteil da hab.
    Ja, krutzitürken, sapperlot...

    Ein solches Konstrukt kann nicht funktionieren:

    Main:
    Do
    Input , X
    If X = 1 Then Goto Loop1
    If X = 2 Then Goto Loop2
    Loop

    Loop1:
    Portb.5 = 1
    Goto Main

    Loop2:
    Portb.5 = 0
    Goto Main

    Bitte, nochmal gaaanz von vorne anfangen und die grundlegenden Regeln der Behandlung von Schleifenkonstrukten erlernen.

    Henrik

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Ist schon recht,
    ich meinte ja auch den ShadowPhoenix.

  9. #19
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    31.01.2004
    Beiträge
    585
    Ohjee, wusste ich es doch, mein Code ist peinlich =)

    Wo lerne ich denn am besten Basic für Bascom? Gibt es da eine Seite?

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    31.01.2004
    Beiträge
    585
    Meine neuen Codes, funktioniert immer noch nicht

    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 9600
    
    Config Pind.5 = Input
    Config Pind.6 = Input
    
    Declare Sub Send1
    Declare Sub Send2
    
    Dim X As Integer
    Dim Y As Integer
    
    X = 1
    Y = 2
    
    Do
    Debounce Pind.5 , 0 , Send1 , Sub
    Debounce Pind.6 , 0 , Send2 , Sub
    Loop
    
    Sub Send1:
    Print X
    End Sub
    
    Sub Send2:
    Print Y
    End Sub

    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 9600
    
    Config Portb = Output
    
    Declare Sub Loop1
    Declare Sub Loop2
    
    Dim X As Integer
    
    Portb.5 = 0
    
    Do
    Input , X
    If X = 1 Then Gosub Loop1
    If X = 2 Then Gosub Loop2
    Loop
    
    Sub Loop1:
    Portb.5 = 1
    End Sub
    
    Sub Loop2
    Portb.5 = 0
    End Sub

    Hmm, habe doch gosub verwendet... trotzdem reagiert der AVR nur auf einen Tastendruck!


    EDIT: Mit Sub, geht aber nicht!

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad