- LiFePO4 Speicher Test         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: RC5 Fernbedinung ATtiny2313 und powerdown Mode Proplem

  1. #1
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1

    RC5 Fernbedinung ATtiny2313 und powerdown Mode Proplem

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Forum Gemeinde und Bastler

    Ich wollte gern eine RC5-FGernbedinung Bauen 4Tasten und dann in den schlaf modus gehen, aber irgendwie haut mein code nicht hin
    Bitte um Rat und Tipps
    Code:
     $regfile = "attiny2313.dat"
    $crystal = 8000000
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
    Ddrd = &B00000010
    
    Config Portd.6 = Output
    Led_gelb Alias Portd.6   'LED GELB - Ob Programm Arbeitet ( Nur zum TESTEN)
    
    'Config Portd.2 = Input
    'Portd.2 = 0
    Config Portd.3 = Input
    Portd.3 = 1
    Config Portd.4 = Input
    Portd.4 = 1
    Config Portd.5 = Input
    Portd.5 = 1
    Config Portd.5 = Input
    Portd.6 = 1
    
    Config Int0 = Low Level
    Enable Interrupts
    On Int0 Isr_int0
    Disable Int0
    
    Dim Geraet As Byte , Kommando As Byte
    Dim Togglebit As Byte
    Togglebit = 0
    
    Do
      If Pind.3 = 0 Then
        Led_gelb = 1
        Geraet = 0           'Blinker / Lauflicht / Radio
        Kommando = 1         'Was wird geschaltet
        Rc5send Togglebit , Geraet , Kommando
        Waitms 50
        Gosub Code
      End If
      If Pind.4 = 0 Then
        Led_gelb = 1
        Geraet = 0           'Blinker / Lauflicht / Radio
        Kommando = 2         'Was wird geschaltet
        Rc5send Togglebit , Geraet , Kommando
        Waitms 50
        Gosub Code
      End If
      If Pind.5 = 0 Then
        Geraet = 0           'Blinker / Lauflicht / Radio
        Kommando = 4         'Was wird geschaltet
        Rc5send Togglebit , Geraet , Kommando
        Waitms 50
        Gosub Code
      End If
      Loop
    End
    
    Code:
    Togglebit = 0
    Geraet = 0
    Rc5send Togglebit , Geraet , Kommando
    Waitms 80
    Enable Int0
    'powerdown
    Return
    End
    
    Isr_int0:
    Disable Int0
    Return
    Schaltung wird nachgereicht
    Vielen Dank und einen schönen Abend Noch
    Gruß T Sch.

    - - - Aktualisiert - - -

    Hier die bilder und schaltung
    Klicke auf die Grafik für eine größere Ansicht

Name:	rc5 fernbedienung - Endwurf.PNG
Hits:	11
Größe:	27,6 KB
ID:	32875
    Klicke auf die Grafik für eine größere Ansicht

Name:	rc5 fernbedienung - Schaltung.jpg
Hits:	24
Größe:	31,0 KB
ID:	32876

    Danke T Sch.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,
    Als erstes fällt mir auf, daß Du Deinem Schaltplan nach einen NPN Transistor als Treiber für die IR-Sendediode an PB3 (OC1A) verwendest (Wie hoch ist der Wert des Basisvorwiderstandes?). Schau mal in der Bascom Hilfe zu RC5SEND. Dort wird ein PNP Transistor verwendet. In Deinem Setup wird deshalb das IR-Signal invertiert gegenüber dem richtigen RC5 Signal ausgegeben.

    aber irgendwie haut mein code nicht hin
    ... hört sich an wie "geht nicht" und ist keine besonders gute Fehlerbeschreibug

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1
    Hallo forum und gemeinde

    Mit den Transistor wahr ein fehler soory, das programm geht in Powerdown und kann danach keine taste drücken?
    Verleicht die taster falsch angeschlossen oder in programm?
    Danke
    Gruß T Sch.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,
    funktioniert den die Fernbedienung grundsätzlich?
    Verstehe ich das richtig, daß nach Nutzung der Fernbedienung, also Einschalten eines Gerätes per FB, die FB in Powerdown geht und sich dann aber nicht mehr aufwecken läßt?
    Das Aufwecken soll dann durch Drücken einer der Tasten zum Einschalten eines Gerätes geschehen?

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo Bastler,
    ich habe mir das Programm nochmal angeschaut. Es sollte alles funktionieren wenn die richtige Treiberschaltung für die IR-LED nach der Bascom Hilfe verwendet wird.

    Allerdings muß an den INT0 (PD2) noch ein Pullup Widerstand angebracht werden oder der interne Pullup mit PORTD.2 = 1 eingeschaltet werden. Sonst floatet der Eingang PD2, hat also keinen definierten Pegel wenn keine Taste gedrückt ist.

    Die Funktion von Led_gelb ist mir nicht klar. Sie wird über PIND.3 oder PIND.4 eingeschaltet aber im weiteren Programm nicht mehr ausgeschaltet. Der Powerdown schaltet sie auch nicht ab, da in dem Zustand nur der Oszillator gestoppt wird aber die Portzustände nicht geändert werden. Sie bleibt also immer eingeschaltet auch während des Powerdowns, wenn sie irgendwann einmal eingeschaltet wurde!

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  6. #6
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1
    So auf ein neues
    Hier die schaltung:
    Anhang 32897
    Und der endwurf
    Anhang 32898
    Den code ist hier:
    Code:
    $regfile = "attiny2313.dat"
    $crystal = 8000000
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
    'Ddrd = &B00000010
    
    Config Portd.6 = Output
    Led_gelb Alias Portd.6   'LED GELB - Ob Programm Arbeitet ( Nur zum TESTEN)
    
    Config Portd.2 = Input
    Portd.2 = 1
    Config Portd.3 = Input
    Portd.3 = 1
    Config Portd.4 = Input
    Portd.4 = 1
    Config Portd.5 = Input
    Portd.5 = 1
    Config Portd.5 = Input
    Portd.6 = 1
    
    Config Int0 = Low Level
    Enable Interrupts
    On Int0 Isr_int0
    Disable Int0
    
    Dim Geraet As Byte , Kommando As Byte
    Dim Togglebit As Byte
    Togglebit = 0
    
    Do
      If Pind.3 = 0 Then
        Led_gelb = 1
        Geraet = 0           'Blinker / Lauflicht / Radio
        Kommando = 1         'Was wird geschaltet
        Rc5send Togglebit , Geraet , Kommando
        Waitms 50
        Gosub Code
      End If
      If Pind.4 = 0 Then
        Led_gelb = 1
        Geraet = 0           'Blinker / Lauflicht / Radio
        Kommando = 2         'Was wird geschaltet
        Rc5send Togglebit , Geraet , Kommando
        Waitms 50
        Gosub Code
      End If
      If Pind.5 = 0 Then
        Geraet = 0           'Blinker / Lauflicht / Radio
        Kommando = 4         'Was wird geschaltet
        Rc5send Togglebit , Geraet , Kommando
        Waitms 50
        Gosub Code
      End If
      Loop
    End
    
    Code:
    Togglebit = 0
    Geraet = 0
    Rc5send Togglebit , Geraet , Kommando
    Waitms 80
    Enable Int0
    Led_gelb = 0
    'Powerdown
    Return
    End
    
    Isr_int0:
    Disable Int0
    Return
    wenn ich unten den powerdown aktivere geht es nur einmal, warum? Bitte um Rat Danke
    Gruß T Sch.

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    wenn ich unten den powerdown aktivere geht es nur einmal, warum? Bitte um Rat Danke
    WAS geht nur einmal? Welche Taste drückst Du? Was erwartest Du?

    Wie ich das sehe, wird RC5SEND zweimal vor dem Powerdown aufgerufen. Das erste Mal nach dem Tastendruck und das zweite Mal im Unterprogramm "Code".

    Denn geht es in den Powerdown. Beim nächsten Tastendruck wird der ATTINY wieder über den Lowlevel Interrupt aktiviert und das Spiel beginnt von vorne.

    Wenn Du nicht schreibst, was exakt Du tust und dann daraufhin erwartest - was Dein Programm genau tun soll, kann ich Dir nicht weiterhelfen.

    Wozu ist gelb_LED da?

    Gruß
    Searcher

    - - - Aktualisiert - - -

    Zitat Zitat von Searcher Beitrag anzeigen
    .., kann ich Dir nicht weiterhelfen.
    Vielleicht doch noch:
    Wenn vor dem powerdown der INT0 enabled wird, kann dieser INT0 auch auftreten. Wenn er also nach ENABLE INT0 und vor dem powerdown auftritt, wird INT0 in der ISR disabled. Danach kommt das powersave, aus dem der µC dann nicht mehr durch den disabelten INT0 geweckt werden kann.

    Abhilfe: Die ISR leer lassen, also das DISABLE INT0 rauslöschen und zB nach jeder Tastenabfrage nach dem IF PIND ... einfügen. also etwa so:

    Code:
    .
    .
    If Pind.3 = 0 Then 
    Disable INT0
    Led_gelb = 1
    .
    .
    .
    .
    Isr_int0:
    Return
    .
    .
    Zitat Zitat von Searcher Beitrag anzeigen
    Wozu ist gelb_LED da?
    Hab es in den Kommentaren gesehen.

    Gruß
    Searcher

    PS: Interesante Lösung. Mich stört aber noch, das die Tasten nicht entprellt sind. Es fehlt ein Abblockkondensator über dem ATTiny2313 und eventuell noch ein Pufferelko ... und die waitms

    Deine Anhänge aus dem letzten post kann ich nicht öffnen. Im Schaltplan aus dem ersten post fehlen zB die Werte für die Widerstände.
    Geändert von Searcher (21.09.2017 um 23:24 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  8. #8
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1
    Hallo Searcher und Forum
    Also die RC5 Fernbedinung soll ja mal in ein handgeäuse verbaut werden, nur so mal neben bei

    Zur Funktion der Fernbedinung:
    -----------------------------------------------------------------------------
    Wenn ich TASTE1 Drücke soll das programm code senden in POWERDOWN gehen.
    beim erneuten drücken der TASTE1 code senden und un POWERDOWN gehen
    -----------------------------------------------------------------------------
    Wenn ich TASTE2 Drücke soll das programm code senden in POWERDOWN gehen.
    beim erneuten drücken der TASTE2 code senden und un POWERDOWN gehen
    -----------------------------------------------------------------------------
    Wenn ich TASTE3 Drücke soll das programm code senden in POWERDOWN gehen.
    beim erneuten drücken der TASTE3 code senden und un POWERDOWN gehen
    -----------------------------------------------------------------------------

    so hätte ich das gerne, aber leider geht das nicht
    hier der code den ich geändert habe:
    Code:
    $regfile = "attiny2313.dat"
    $crystal = 8000000
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
    'Ddrd = &B00000010
    
    Config Portd.6 = Output
    Led_gelb Alias Portd.6   'LED GELB - Ob Programm Arbeitet ( Nur zum TESTEN)
    
    Config Portd.2 = Input
    Portd.2 = 1
    Config Portd.3 = Input
    Portd.3 = 1
    Config Portd.4 = Input
    Portd.4 = 1
    Config Portd.5 = Input
    Portd.5 = 1
    Config Portd.5 = Input
    Portd.6 = 1
    
    Config Int0 = Low Level
    Enable Interrupts
    On Int0 Isr_int0
    Disable Int0
    
    Dim Geraet As Byte , Kommando As Byte
    Dim Togglebit As Byte
    Togglebit = 0
    
    'NEU
    Led_gelb = 0
    'NEU
    
    Do
      If Pind.3 = 0 Then
        Led_gelb = 1
        Geraet = 0           'Blinker / Lauflicht / Radio
        Kommando = 1         'Was wird geschaltet
        Rc5send Togglebit , Geraet , Kommando
        'NEU
        Disable Int0
        'NEU
        Waitms 50
        Gosub Code
      End If
      If Pind.4 = 0 Then
        Led_gelb = 1
        Geraet = 0           'Blinker / Lauflicht / Radio
        Kommando = 2         'Was wird geschaltet
        Rc5send Togglebit , Geraet , Kommando
        'NEU
        Disable Int0
        'NEU
        Waitms 50
        Gosub Code
      End If
      If Pind.5 = 0 Then
        Geraet = 0           'Blinker / Lauflicht / Radio
        Kommando = 4         'Was wird geschaltet
        Rc5send Togglebit , Geraet , Kommando
        'NEU
        Disable Int0
        'NEU
        Waitms 50
        Gosub Code
      End If
      Loop
    End
    
    Code:
    'Togglebit = 0                         'AUS
    'Geraet = 0                            'AUS
    'Rc5send Togglebit , Geraet , Kommando 'AUS
    Waitms 80
    Enable Int0
    Led_gelb = 0
    Powerdown
    Return
    End
    
    Isr_int0:
    'Disable Int0    'AUS
    Return
    wenn ich den code zum chip sende alles ok soweit und dann auf die TASTE1 Drücke wird nicht mal der code gesendet und (led_gelb) geht an und bleibt an nichts geht mehr, auser neu programieren....
    noch was zur schaltung, der abblokkodensator ist im IC-Halterrung verbaut und der kondensator ja der fehlt wahr ja auf schnell gemacht.....

    Soweit erst mal danke und Lieben Gruß
    T. Sch.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo Bastler,
    ich habe im Code ein paar Stellen farbig markiert:
    Zitat Zitat von Der bastler Beitrag anzeigen
    Code:
    $regfile = "attiny2313.dat"
    $crystal = 8000000
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
     'Ddrd = &B00000010  'Würde PORTD.1 auf Output schalten. Ich würde die komplette Zeile rauslöschen
    
    Config Portd.6 = Output
    Led_gelb Alias Portd.6   'LED GELB - Ob Programm Arbeitet ( Nur zum TESTEN)
    
    Portd.1 = 1   'Pullup auf portd.1, Portds sind ist defaultmäßig nach reset sowieso auf Input.
    Config Portd.2 = Input
    Portd.2 = 1
    Config Portd.3 = Input
    Portd.3 = 1
    Config Portd.4 = Input
    Portd.4 = 1
    Config Portd.5 = Input
    Portd.5 = 1
    Config Portd.5 = Input  'ist doppelt und kann entfallen
    Portd.6 = 1  'Einschalten von LED_gelb
    ...dann auf die TASTE1 Drücke wird nicht mal der code gesendet und (led_gelb) geht an und bleibt an nichts geht mehr, auser neu programieren....
    Wo ist TASTE1 angeschlossen? Bei PORTD.1 fehlt Aktivierung von Pullup (oben in grün hinzugefügt)
    Portd.5 ist sowieso Input und wird darüber hinaus auch zwei Mal als Input konfiguriert.

    Fuses richtig gesetzt? Insbesondere CKDIV8 für 8MHz Systemtakt.

    Das DISABLE INT0 würde ich direkt nach dem IF PIN Befehl einfügen. Das Verhalten kenne ich auch nicht genau und kann ich im Augenblick auch nicht testen.

    Sonst fällt mir im Augenblick nichts Neues ein

    Gruß
    Searcher
    Geändert von Searcher (23.09.2017 um 14:51 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  10. #10
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1
    PonyPro2000 Fuse einstellung
    Klicke auf die Grafik für eine größere Ansicht

Name:	Fuse einstellung 8Mhz.PNG
Hits:	6
Größe:	12,2 KB
ID:	32900

    Nachreichen...

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. [ERLEDIGT] Proplem mit LED Matrix Display
    Von Jackeder im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 31.01.2016, 17:01
  2. ATtiny2313 in den Sleep-Mode versetzen?
    Von ledi im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 01.06.2010, 12:30
  3. ATtiny2313 mit PWM mode 14 klappt nicht in der Simulation
    Von newbee08 im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 23.09.2008, 11:51
  4. Vista Proplem
    Von InFaIN im Forum Asuro
    Antworten: 21
    Letzter Beitrag: 24.06.2008, 00:47
  5. fernbedinung mit pic
    Von nourdine im Forum PIC Controller
    Antworten: 0
    Letzter Beitrag: 14.05.2007, 09:21

Berechtigungen

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

12V Akku bauen