- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Brauche Hilfe bei meinem Programmcode

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    Anzeige

    Praxistest und DIY Projekte
    dass freut mich

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    34
    Beiträge
    718
    Mist PWM geht nicht wirklich.
    Rot fadert hoch und er tut nichts.. paar Sekunden später startet er einfach neu.

    Am RS232 kommt dann sowas an:

    ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’LR Befehlŗč’’’’’’’
    ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Starte Hauptprogramm
    IR

    Bricht er vielleicht zusammen?
    Das Teil macht mich langsam bekloppt.

    Zudem wollte ich gerade die
    Waitms 20 in Programm 2 mit Call Wait_and_get(20) ersetzen (um halt auch wärend der Programmausführung das Programm wechseln zu können), dann läuft das Lauflicht bis zur Hälfte und das wars.
    Jedesmal jedoch anders.

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    34
    Beiträge
    718
    So Problem ist einfach verschwunden, fragt bitte nicht warum.
    Das Programm wurde überholt, aber die PWM ruckelt komigerweise,
    und wenn ich aus der PWM das program mwechsel bleiben die RGBs stehen.

    Code:
    $regfile = "m16def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 40
    $crystal = 16000000
    $baud = 9600
    
    Waitms 50                                                   'Einschwingzeit
    
    '//////////Ports Konfigurieren\\\\\\\\\\
    Config Porta = Output                                       'M1
    Config Portc = Output                                       'M2
    Config Portd.6 = Output                                     'RGB-Rot
    Config Portd.3 = Input                                      'TSOP
    
    Porta.4 = 1                                                 'Enable1 active = low
    Portc.4 = 1
    Enable1 Alias Porta.4
    Enable2 Alias Portc.4
    
    Portd.6 = 1                                                 'RGB Led ausschalten
    Portc.7 = 1
    Portc.6 = 1
    
    '//////////Timer konfigurieren, Vorteiler auf 1\\\\\\\\\\
    Config Timer0 = Timer , Prescale = 1
    
    '//////////RC5 konfigurieren mit Timer 2\\\\\\\\\\
    Config Rc5 = Pind.3 , Timer = 2
    
    '/////////Sub Deklarieren\\\\\\\\\\\\\
    Declare Sub Wait_and_get(byval Ms As Byte)
    
    
    '//////////Definiere den Interrupthandler\\\\\\\\\\
    On Ovf0 Tim0_isr
    Enable Interrupts
    
    Enable Timer0                                               'Timer einschalten
    
    
    Dim R1 As Byte                                              ' In diese Variablen muss man
    Dim G1 As Byte                                              ' im Hauptprogram die gewnschten
    Dim B1 As Byte                                              ' Ausgabewerte laden
    
    Dim Z As Word                                               'Zļæ½ler
    
    Dim Ri1 As Byte                                             'Hilfsregister
    Dim Gi1 As Byte
    Dim Bi1 As Byte
    
    '//////////Variablen fr Hauptprogramm\\\\\\\\\\
    Dim A As Byte                                               'Schleifenvariable RGBs
    
    Z = 0
    
    G1 = 0
    R1 = 0
    B1 = 0
    
    Dim I As Byte                                               'Schleifenvariable Lauflicht
    Dim I2 As Byte                                              'Schleifenvariable Lauflicht
    Dim I3 As Byte                                              'Schleifenvariable Lauflicht
    Dim Ir_address As Byte
    Dim Ir_command As Byte
    
    Wait 1
    
    '//////////Einstellungen\\\\\\\\\\
    Const Freilauf = 20                                               'Lauflicht Freilaufzeit
    'Normaldurchlauf = 2                                         'Anzahl der Standarddurchlļæ½fe
    '//////////Hauptprogramm <Start>\\\\\\\\\\
    Waitms 200
    Print "Starte Hauptprogramm"
    
    Standby:
    Do
    
    Call Wait_and_get(5)                                        'Dļæ½mchen drehen und auf Befehl warten
    
    Loop
    
    '//////////Hauptprogramm <Ende>\\\\\\\\\\
    
    'Programm1: RGB LEDs
    Programm1:
    Do
    
    'Rot
    For A = 0 To 254
    Incr R1
    Call Wait_and_get(0)
    Next
    Call Wait_and_get(10)
    For A = 0 To 254
    Decr R1
    Call Wait_and_get(0)
    Next
    
    'Grn
    For A = 0 To 254
    Incr G1
    Call Wait_and_get(0)
    Next
    Call Wait_and_get(10)
    For A = 0 To 254
    Decr G1
    Call Wait_and_get(0)
    Next
    
    'Blau
    For A = 0 To 254
    Incr B1
    Call Wait_and_get(0)
    Next
    Call Wait_and_get(10)
    For A = 0 To 254
    Decr B1
    Call Wait_and_get(0)
    Next
    
    'Blau/Grn
    For A = 0 To 254
    Incr B1
    Incr G1
    Call Wait_and_get(0)
    Next
    Call Wait_and_get(10)
    For A = 0 To 254
    Decr B1
    Decr G1
    Call Wait_and_get(0)
    Next
    
    'Blau/Rot
    For A = 0 To 254
    Incr B1
    Incr R1
    Call Wait_and_get(0)
    Next
    Call Wait_and_get(10)
    For A = 0 To 254
    Decr B1
    Decr R1
    Call Wait_and_get(0)
    Next
    
    'Grn/Rot
    For A = 0 To 254
    Incr G1
    Incr R1
    Call Wait_and_get(0)
    Next
    Call Wait_and_get(10)
    For A = 0 To 254
    Decr G1
    Decr R1
    Call Wait_and_get(0)
    Next
    
    'Grn/Rot/Blau
    For A = 0 To 254
    Incr G1
    Incr R1
    Incr B1
    Call Wait_and_get(0)
    Next
    Call Wait_and_get(10)
    For A = 0 To 254
    Decr G1
    Decr R1
    Decr B1
    Call Wait_and_get(0)
    Next
    Loop
    'ende des 1. programms
    
    'Programm2: Lauflicht
    Programm2:
    Do
    
     For I = 0 To 15
      Porta = I
      Enable1 = 0
      Call Wait_and_get(Freilauf)
      Enable1 = 1
     Next I
    
     For I = 0 To 11
      Portc = I
      Enable2 = 0
      Call Wait_and_get(Freilauf)
      Enable2 = 1
     Next I
    Call Wait_and_get(0)
    Loop
    'ende des 2. programms
    
    
    'Programm3: Lauflicht2
    Programm3:
    Do
    
     For I = 0 To 15
      Porta = I
      Enable1 = 0
      Waitms 10
      Enable1 = 1
     Next I
    
     For I = 0 To 11
      Portc = I
      Enable2 = 0
      Waitms 10
      Enable2 = 1
     Next I
    Call Wait_and_get(0)
    Loop
    'ende lauflicht 2
    
    Programmr:
    R1 = 255
    Goto Standby
    
    '/////////////////Funktion zum RC5 empfangen und warten\\\\\\\\\\\\\\\
    'Sub zum empfangen und warten
    Sub Wait_and_get(byval Ms As Integer)
    Getrc5(ir_address , Ir_command)                             'Empfangen
    
    'Wenn was empfangen dann reagieren
    If Ir_address = 0 Then
    Ir_command = Ir_command And &B01111111 'entfernt das togglebit
    
      If Ir_command = 17 Then Goto Programm1
      If Ir_command = 18 Then Goto Programm2
      If Ir_command = 19 Then Goto Programm3
      If Ir_command = 20 Then Goto Programmr
    ' If Ir_command = irgendwas Then Goto Standby
    End If
    
    Waitms Ms                                                   'warten
    End Sub
    
    
    '//////////Interupthandler Timer0 <Start>\\\\\\\\\\
    Tim0_isr:
    
        If Z = 0 Then                                           'Gewnschte Ausgabewerte an
        Ri1 = R1                                                'Hilfsregister bergeben
        Gi1 = G1
        Bi1 = B1
        Z = 255
        End If
    
        Z = Z - 1
    
        'PWM Kanļæ½e
    
        'RGB LEDs
        If Ri1 > 0 Then
        Portd.6 = 0
        Else
        Portd.6 = 1
        End If
        Decr Ri1
        If Ri1 = 255 Then Ri1 = 0
    
        If Gi1 > 0 Then
        Portc.7 = 0
        Else
        Portc.7 = 1
        End If
        Decr Gi1
        If Gi1 = 255 Then Gi1 = 0
    
        If Bi1 > 0 Then
        Portc.6 = 0
        Else
        Portc.6 = 1
        End If
        Decr Bi1
        If Bi1 = 255 Then Bi1 = 0
    
        Return
    '//////////Interupthandler Timer0 <Ende>\\\\\\\\\\
    Langsam überleg ich schon es einfach in die Tonne zu werfen, aber ist ist ja so gut wie fertig.

    Hier mal der Schaltplan, kann es sein das es an den transen liegt?
    War schonmal einer kaputt.
    http://dastefan.da.funpic.de/Srv/sch.JPG

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test