- 12V Akku mit 280 Ah bauen         
Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 38 von 38

Thema: kleines Problem bei IR abfrage

  1. #31
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Anzeige

    E-Bike
    Hallo Lenox,

    Ganz so einfach ist es mit RC5 nicht, wenn Du den Timer mit 36 kHz laufen hast und z.B. eine Logische 1 senden willst, mußt Du 32 Überläufe die Led senden lassen, dann 32 Überläufe nicht senden lassen, bei einer 0 ist es andersherum, das ganze mal 14 Bit .
    Ich könnte Dir ein Codeschnipsel zukommenlassen ist aber in Assembler.

    Sleepmodus am besten Powerdown und den Taster an Extint anschliessen.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  2. #32
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    Achso, oky hab ich jetzt verstanden, aber ich glaub das bekomm ich noch nicht hin.
    Dafür hab ich einfach noch zuwenig Programmiererfahrung.

    Ich denke mal die Subroutien müsste in etwa so aussehen (für 1 Bit)

    If Schalter = 1
    If I < 33
    Portb.0 = 1
    End if
    If I >32 AND I < 65
    Portb.0 = 0
    End If
    I = I +1
    End If

  3. #33
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    So könnte man es machen, denke ich, jetzt nur noch alles mit 14 bits und gut ist...
    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  4. #34
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    Oky dann lasst uns doch mal den Code zusammenbasteln!

    Code:
    $regfile = "Attiny13.dat"                                   ' the used chip
    $crystal = 9600000
    
    Config Portb.0 = Output                                     'LED
    Config Portb.4 = Input                                      'Schalter gegen GND
    Portb.4 = 1                                                 'Pullup
    
    Schalter Alias Portb.4
    
    Config Timer0 = Timer , Prescale = 8
    On Timer0 Timer_irq
    Const Timervorgabe = 256 - 33
    
    Enable Timer0
    Enable Interrupts
    
    Dim I As Byte
    
    Do
    
    Loop
    
    Timer_irq:
    
    If Schalter = 1
     If I < 33 Then
      Portb.0 = 1
     End If
    
     If I > 32 And I < 65 Then
      Portb.0 = 0
     End If
    
     If I = 64 Then
     I = 0
     Else
     I = I + 1
     End If
    
    End If
    
    Return
    Ist noch ein Fehler bei der Varibale I drin "Out of space?!"
    Was fehlt hier sonst noch?

  5. #35
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Gute Frage was noch fehlt, meiner Meinung nach sieht es gut aus, ich weiß nicht wo die Variable out of space ist sorry, wenn Du nicht weiter kommst kannst Du mein Asmprogramm haben, aber schau mal, das kriegst Du schon hin ...

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  6. #36
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    Vielleicht wäre es doch ganz praktisch wenn du mir den Asm Code posten könntest, ich muss auch noch den ganzen RGB Kram fertig bekommen.
    Dafür brauch ich PonyProg oder? (Asm)

  7. #37
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    Alle am feiern?

  8. #38
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    Soo ich habs jetzt raus (ersten 3 Bits).
    Aber ich habe schon 43% belegt, leider fällt mir keine Methode mit Schleife ein!

    Code:
    $regfile = "ATtiny13.dat"
    $crystal = 9600000
    $hwstack = 32
    $swstack = 8
    $framesize = 16
    
    Config Portb.0 = Output                                     'LED
    Config Portb.4 = Input                                      'Schalter gegen GND
    Portb.4 = 1                                                 'Pullup
    
    Schalter Alias Portb.4
    
    Config Timer0 = Timer , Prescale = 8
    On Timer0 Timer_irq
    Const Timervorgabe = 256 - 33
    
    Enable Timer0
    Enable Interrupts
    
    Dim I As Byte
    I = 0
    
    Do
    
    Loop
    
    Timer_irq:
    
     If I < 33 Then                                             '1
      Portb.0 = 1
     End If
     If I > 32 And I < 65 Then
      Portb.0 = 0
     End If
    
     If I > 64 And I < 97 Then                                  '2
      Portb.0 = 1
     End If
     If I > 96 And I < 129 Then
      Portb.0 = 1
     End If
    
     If I > 128 And I < 161 Then                                '3
      Portb.0 = 1
     End If
     If I > 160 And I < 193 Then
      Portb.0 = 1
     End If
    
    Return
    PS: irgentwo ist da noch ein Fehler drin, die IR Led blink viel zu langsam.

Seite 4 von 4 ErsteErste ... 234

Berechtigungen

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

12V Akku bauen