- SF800 Solar Speicher Tutorial         
Seite 6 von 7 ErsteErste ... 4567 LetzteLetzte
Ergebnis 51 bis 60 von 67

Thema: RC-Empfänger Auswerten

  1. #51
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Anzeige

    Praxistest und DIY Projekte
    So nur die Sache mit dem Flash macht mir Kopfschmerzen
    Wieso??



    Code:
    ...
    ...
    
    Select case Impuls
    
    Case is > 110: DDRA = &B01111111  'Flash, Beacon, LS und PosLi als Ausgang
    Case 75 to 109: DDRA = &B01101111   'Flash, Beacon und PosLi als Ausgang
    Case is < 75: DDRA = &B01100000  'Nur PosLi als Ausgang
    
    End select
    ..
    ..
    Hi, Ja das Buch kenne ich
    Großartig - es gibt m.E. kein besseres, um Bascom von der Pieke auf zu lernen!!!


    EDIT:

    In Deinem Beitrg von vorgestern 18.00 Uhr sind´s noch die Landescheinwerfer, die zusammen mit dem Flashlight über den 3-stufigen Schalter geschaltet werden sollen. Das geht ein wenig durcheinander, aber wenn Dir das Prinzip klar ist, kannst Du natürlich auch die Positionslichter über das DDR-Register steuern!

  2. #52
    Erfahrener Benutzer Roboter-Spezialist Avatar von MiniMax
    Registriert seit
    26.07.2007
    Ort
    Bremen
    Beiträge
    241
    Hi, naja so wie du dass Schaltest leuchten alle LED's Dauer
    Die Flash lights muss ich ja mit dem µC zum Blinken Bringen - darum Kopfschmerzen
    Gruß
    MiniMax

  3. #53
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    naja so wie du dass Schaltest leuchten alle LED's Dauer
    Wenn das so wäre, hätte ich´s nicht so geschrieben.

    DDRDX.Y = 1 heißt mitnichten, dass der Ausgangspin ein High führt. Er ist lediglich als AUSGANG konfiguriert. Ob er eine 1 oder 0 führt, hängt von PORTX.Y ab.

    Mein Vorschlag war also der, in der Hauptroutine die Ports vom Flasher und der Beacon kontinuierlich in ihrem Rhythmus zu setzen und zu löschen, und auf DDR-Ebene zu entscheiden, ob diese Levels wirklich an die Endverbraucher kommen (DDRX.Y = 1) oder eben nicht (DDRX.Y = 0).

    BTW: Das Buch von Roland Walter kostet echt nicht die Welt...

  4. #54
    Erfahrener Benutzer Roboter-Spezialist Avatar von MiniMax
    Registriert seit
    26.07.2007
    Ort
    Bremen
    Beiträge
    241
    Hi, ähmm irgendwie verstehe ich nicht ganz was du meinst? Was hat die DDR ebene damit zu tun ob die LED's an oder aus sind?!? WAs ich jetzt gemacht habe, ist DDRD = &B11111111 --> Alle Ports im Segment D sind als Ausgang konfiguriert
    Gruß
    MiniMax

  5. #55
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    So wie ich das verstanden habe willst Du doch die Flashs und die Beacon nicht immer an oder immer aus haben, sondern sie sollen blinken oder nicht blinken, je nach Steuerknüppelstellung. Richtig??

    Und eine von 2914 Möglichkeiten das zu realisieren wäre die:

    1. die PORTs (!!) werden in der Hauptschleife immer und immer nach Deinem Muster gesetzt und resettet. Also Flash an, Flash aus, Flash an, Flash aus, Beacon an, laaaange pause, Bacon aus.

    2. Wenn das RC-Signal aber grade anzeigt, dass z.B. die Flashs aus sein sollen, setzt Du die dazugehörigen DDR-Register einfach auf 0. Dann sind die Anschlusspins des Controllers als Ausgänge quasi "abgehängt", völlig unabhängig davon, was auf der PORT-Ebene passiert.

    Jetzt klarer??

  6. #56
    Erfahrener Benutzer Roboter-Spezialist Avatar von MiniMax
    Registriert seit
    26.07.2007
    Ort
    Bremen
    Beiträge
    241
    Hi,

    So wie ich das verstanden habe willst Du doch die Flashs und die Beacon nicht immer an oder immer aus haben, sondern sie sollen blinken oder nicht blinken, je nach Steuerknüppelstellung. Richtig??
    Jop!

    1. die PORTs (!!) werden in der Hauptschleife immer und immer nach Deinem Muster gesetzt und resettet. Also Flash an, Flash aus, Flash an, Flash aus, Beacon an, laaaange pause, Bacon aus.

    2. Wenn das RC-Signal aber grade anzeigt, dass z.B. die Flashs aus sein sollen, setzt Du die dazugehörigen DDR-Register einfach auf 0. Dann sind die Anschlusspins des Controllers als Ausgänge quasi "abgehängt", völlig unabhängig davon, was auf der PORT-Ebene passiert.
    Also: Wenn die Lichter Aus sein Sollen setzte ich das dazugehörige register auf 0 und wenn die Flasher ein sein Sollen, setze ich sie auf 1 ? Richtig??? Und die Flash reinfolge passiert unabhämging von den Schalterzuständen? Richtig?? Nur wie SOll ich die Flaher laufen lassen? Mit ner Case abfrage in do und in der Timer_isr einfach "incr Blabla" ??
    Gruß
    MiniMax

  7. #57
    Erfahrener Benutzer Roboter-Spezialist Avatar von MiniMax
    Registriert seit
    26.07.2007
    Ort
    Bremen
    Beiträge
    241
    So habe es jetzt so gemacht und siehe da -- es funktionier - naja halb
    Wenn ich mit DDRA = ... die Ausgänge auf Eingang schalte, leuchten die LED's ganz leicht noch - geht dass später mit nem Transistor weg?
    Gruß
    MiniMax

  8. #58
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Wenn ich mit DDRA = ... die Ausgänge auf Eingang schalte, leuchten die LED's ganz leicht noch - geht dass später mit nem Transistor weg?
    Das ist der kleine Schönheitsfehler an meinem Gedanken.

    Das PORTX.Y-Register legt ja fest, ob ein Anschluss, der als Ausgang konfiguriert ist, 1 oder 0 führt. Wenn der Anschluss als Eingang konfiguriert ist, ist das PORT-Register aber nicht ganz unbeteiligt: Ist es 1, wird ein eingebauter PullUp-Wierstand aktiviert, der den Eingangspin auf ein definiertes High zieht, wenn er komplett unbeschaltet in der Luft hängt. Das ist dann wichtig, wenn Du z.B. einen Taster oder sowas abfragst, denn frei in der Luft hängende Pins fangn sich sofort alle möglichen Störsignale (z.B. 50Hz-Brumm, aber auch hochfrequente Signale) ein.

    Dieser PullUp-Widerstand nach +5V ist zwar hochohmig (ca. 50 kOhm), aber offensichtlich reichen diese 0,1mA schon aus, Deine LEDs ein bisschen leuchten zu lassen. Eine Transistorstufe würde das sogar noch verschlimmern, weil man mit 50 kOhm gegen +5V einen Transistor ohne weiteres komplett durchsteuern kann.

    Die einfachste Lösung hierfür wäre, dass Du Deine LEDs nicht vom Controller nach Masse legst, sondern genau adersherum von +5V zum Controller. Da die LED ohnehin an +5V hängt, ist der 50 kOhm-PullUP nach +5V ohne Wirkung.

    Das wird eigentlich auf fast allen Boards ohnehin so gemacht, weil der Strom, den ein LOW-Anschluss nach Masse ableiten kann höher ist als der Strom, den er im HIGH-Zustand z.B. an eine LED abgeben kann.

    Man muss dann halt nur umdenken, denn RESET xyz schaltet die LED an, und SET schaltet sie aus. Aber das haben sch viele Bascom-Anwender geschafft.



    Nur wie SOll ich die Flaher laufen lassen? Mit ner Case abfrage in do und in der Timer_isr einfach "incr Blabla" ??
    Ich bin zwar absolut kein Profi, würde es aber genau so machen. Oder spricht irgendetwas dagegen?

  9. #59
    Erfahrener Benutzer Roboter-Spezialist Avatar von MiniMax
    Registriert seit
    26.07.2007
    Ort
    Bremen
    Beiträge
    241
    Also LED + geht an AVR und GND an Netzteil meinst du dass so? Aber ich schalte ja eh später mit nem Mosfet ?!? Der läuft ja über 100 OHM und dann gegen Base --> siehe

    Geht dass so?
    Gruß
    MiniMax

  10. #60
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Okay - dann muss ´ne andere Lösung her. So´n FET würde natürlich von den 50 kOhm komplett durchgesteuert.

    Dann würde ich das so machen, dass Du in der Hauptschleife die Select Case-Abfrage machst, und vor dem Einschalten der entsprechenden Ausgänge die Impuls-Variable abfragst. Also etwa so:

    Code:
    ...
    ...
    Select Case V
    
    Case 1:
     If Impuls > 185 then
      Set Flashlinks
      Set Flashrechts
      SetFlashheck
     End if
    
    Case 2:
    Reset Flashlinks
    Reset Flashrechts
    Reset Flashheck
    
    ...
    ...

    Das resetten sollte unabhängig von der Variablen Impuls laufen, denn wenn Du per 3-Stufenschalter die Flashs in dem Moment ausschaltest wo sie gerade an sind, müssen sie in der nächsten Select-Case-Runde ja trotzdem ausgeschaltet werden.

    D.h. ganz allgemein: Das Einschalten mit einem "If Impuls</> blabla" verknüpfen, das Auschalten nicht. Dann hast Du alle beiden Funktionen in einer einzigen Select-Case-Schleife.

Seite 6 von 7 ErsteErste ... 4567 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests