- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 18

Thema: Port über Taster ein und ausschalten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.02.2010
    Ort
    Osdorf
    Alter
    30
    Beiträge
    127
    So jetzt hab ich es hinbekommen das der Taster beim betätigen die LED einschaltet und diese auch an bleibt ich darf max. 5 sek auf dem Taster bleiben sonst geht sie wieder aus. Wenn ihr eine Bessere Lösung wisst die das selbe Ergebnis bring immer her damit Mein Problem ist nämlich jetzt das wenn ich den Code für die Taster abfrage und den Code für die Servos zusammen laufen lasse der Atmega völlig spinnt. Er nimmt keine Befehle mehr an und der Servo mach fürchterliche Geräusche. Außerdem wird der Spannungswandler Extrem heiß! Kann das sein das der Controller mit dem Programm überfordert ist ? Werde aber ein Atmega 328 nehmen nicht den Atmega32. Hab das neue Board noch nicht hier. Gruß Tjark
    Code:
    $regfile = "m32def.dat"$framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    
    Config Servos = 4 , Servo1 = Porta.2 , Servo2 = Porta.3 , Servo3 = Porta.4 , Servo4 = Porta.5 , Reload = 10
    Config Dcf77 = Pind.7 , Timer = 1 , Gosub = Sectic
    Config Porta.0 = Output
    Config Porta.1 = Output
    Config Porta.2 = Output
    Config Porta.3 = Output
    Config Porta.4 = Output
    Config Porta.5 = Output
    
    Enable Interrupts
    Time$ = "00:00:00"
    Date$ = "09/04/00"
    
    Portswitch Alias Porta.1
    Led1 Alias Porta.0
    
    Dim Inputstring As String * 5
    Dim Data_available As Byte
    '----X-----------------------------------
    Dim Joystick_x_wert_string As String * 5
    Dim Joystick_x_wert_integer As Integer
    Dim X_empfangen As Byte
    '----Y-----------------------------------
    Dim Joystick_y_wert_string As String * 5
    Dim Joystick_y_wert_integer As Integer
    Dim Y_empfangen As Byte
    '----Z-----------------------------------
    Dim Joystick_z_wert_string As String * 5
    Dim Joystick_z_wert_integer As Integer
    Dim Z_empfangen As Byte
    '----Z-Rotation--------------------------
    Dim Joystick_rz_wert_string As String * 5
    Dim Joystick_rz_wert_integer As Integer
    Dim Rz_empfangen As Byte
    'Buttons---------------------------------
    Dim Button1_wert_string As String * 5
    Dim Button1_wert_integer As Integer
    Dim B1_empfangen As Byte
    
    Do
      Data_available = Ischarwaiting()
      If Data_available > 0 Then                                'wenn Daten da sind, dann...
        Input "" , Inputstring
        X_empfangen = Instr(inputstring , "X")                  'Gibt die Position des Substrings "X" aus oder null wenn nicht gefunden
        Y_empfangen = Instr(inputstring , "Y")                  'Gibt die Position des Substrings "Y" aus oder null wenn nicht gefunden
        Z_empfangen = Instr(inputstring , "Z")                  'Gibt die Position des Substrings "Z" aus oder null wenn nicht gefunden
       Rz_empfangen = Instr(inputstring , "Rz")                 'Gibt die Position des Substrings "Z-Rotation" aus oder null wenn nicht gefunden
       B1_empfangen = Instr(inputstring , "B1")                 'Gibt die Position des Substrings "Button 1 " aus oder null wenn nicht gefunden
    
    '----X-----------------------------------
        If X_empfangen = 1 Then
           Joystick_x_wert_string = Mid(inputstring , 2)        'die erste Stelle des Strings (das "X") abscheiden
           Joystick_x_wert_integer = Val(joystick_x_wert_string)       'string in integer konvertieren
        End If
    '----Y-----------------------------------
        If Y_empfangen = 1 Then
           Joystick_y_wert_string = Mid(inputstring , 2)        'die erste Stelle des Strings (das "Y") abscheiden
           Joystick_y_wert_integer = Val(joystick_y_wert_string)       'string in integer konvertieren
        End If
    '----Z-----------------------------------
         If Z_empfangen = 1 Then
           Joystick_z_wert_string = Mid(inputstring , 2)        'die erste Stelle des Strings (das "Z") abscheiden
           Joystick_z_wert_integer = Val(joystick_z_wert_string)       'string in integer konvertieren
        End If
    '----Z-Rotation--------------------------
        If Rz_empfangen = 1 Then
           Joystick_rz_wert_string = Mid(inputstring , 2)       'die erste Stelle des Strings (das "Rz") abscheiden
           Joystick_rz_wert_integer = Val(joystick_rz_wert_string)       'string in integer konvertieren
        End If
     '----Button 1 ---------------------------
        If B1_empfangen = 1 Then
           Button1_wert_string = Mid(inputstring , 2)           'die erste Stelle des Strings (das "Rz") abscheiden
           Button1_wert_integer = Val(button1_wert_string)      'string in integer konvertieren
        End If
    End If
    
    Servo(1) = Joystick_x_wert_integer
    Servo(2) = Joystick_y_wert_integer
    Servo(3) = Joystick_z_wert_integer
    Servo(4) = Joystick_rz_wert_integer
    
    If Time$ < "00:00:05" Then                                  'Hier wird das Signal Ignoriert bzw. Schaltet den Portswitch immer auf null wenn man drückt
    Gosub Ausschalten
    End If
    
    If Time$ > "00:00:05" Then                                  'Erst nach 5sek. wird ein neues Signal erfasst                                  '
    Gosub Einschalten
    End If
    
    If Portswitch = 1 Then
    Toggle Led1
    End If
    
    Loop
    End
    
    Einschalten:
    If Button1_wert_integer = 1128 Then
    Portswitch = 1
    Time$ = "00:00:00"                                          'Sofern ein Signal vom Joystickknopf gekommen ist werden die Folgenden für 5sek. Ignoriert.
    End If
    Return
    
    Ausschalten:
    If Button1_wert_integer = 1128 Then
    Portswitch = 0
    End If
    Return
    
    Sectic:                                                     'wird sekündlich aufgerufen
       Gosub Uhranzeigen
       If _sec = 0then
       End If
    Return
    
    Uhranzeigen:
    Print Time$ ; ""
    Return

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.02.2010
    Ort
    Osdorf
    Alter
    30
    Beiträge
    127
    Oder liegt es daran das Beide Funktionen also DCF77 und Config Servo Timer1 benutzen ?
    Gruß Tjark
    Edit: Daran kann es nicht liegen so weit ich grad gelesen habe benutzt Config Servo standardmäßig Timer0 man kann aber auch Timer1 benutzten.
    Geändert von Projekt 2252 (17.05.2012 um 22:26 Uhr)

Ähnliche Themen

  1. Taster soll neben serieller schnittstelle Port togglen
    Von aphex-world im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 10.01.2010, 11:01
  2. Led mit Taster ein- und ausschalten
    Von Nullinger im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 30.01.2009, 13:00
  3. 3 Taster von RN-LCD-Adapter mit einem Port abfragen
    Von masabuana im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 20.07.2007, 12:23
  4. LED Scheinwerfer über PortA an bzw ausschalten
    Von nooob im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 8
    Letzter Beitrag: 05.09.2006, 08:49
  5. Spannungssteuerung über Taster
    Von Strahleman im Forum Elektronik
    Antworten: 62
    Letzter Beitrag: 30.01.2006, 17:38

Berechtigungen

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

LiFePO4 Speicher Test