-         

Ergebnis 1 bis 9 von 9

Thema: Ausgang wird nicht richtig gesetzt

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627

    Ausgang wird nicht richtig gesetzt

    Anzeige

    Hallo,
    ich möchte ein PWM Signal auswerten was auch gut klappt, aber wenn ich dann einen Ausgang setze leuchtet die LED am Ausgang nur schwach.

    Wenn ich mit
    PORTD = &B11111111
    die Ausgänge setze Leuchten die LED´s ordentlich (gemessener strom 1,5mA! LED mit Vorwiderstand für 5V)

    Wenn ich das mit dem Programm (unten) versuche habe ich 5V am Ausgang Bis ich die LED anschließe! Dann geht die Spannung auf 1,7V runter und die LED glimmt nur!


    'Konfiguration µC:
    $regfile = "2313def.dat" 'AT90S2313-Deklaration
    $crystal = 3686400 'Quarz: 3.6864 MHz

    ' Ein- und Ausgänge

    Ddrd.2 = 0 'Eingang setzen Empfängersignal



    '===============================================
    ' Variablen
    '===============================================
    Dim Pulsbreite1 As Word 'Knüppelstellung von Knüppel 1

    Dim Kanal1o As Bit 'Speicher von Knüppel 1 OBEN


    '-------------------------------------------------------------------------------

    Do

    Pulsein Pulsbreite1 , Pind , 2 , 1 'Pulsbreite auslesen (1=High Impuls)


    If Pulsbreite1 > 140 And Kanal1o = 0 Then 'Wenn Impuls lang genug
    Toggle Portd.3 'PD3 schalten
    Kanal1o = 1 'Merker kanal1o setzen
    End If

    If Pulsbreite1 < 140 Then 'Wenn Impuls zu kurz
    Kanal1o = 0 'Merker kanal1o RÜCKsetzen
    End If


    Loop
    End

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    06.12.2005
    Ort
    Hamburg
    Alter
    28
    Beiträge
    86
    Ich kenne zwar nicht die genaue Pinzuweisung des Chips aber kann es sein das der Pin für IIC oder so genutzt wird(combiler optione )(oder die Fuse Bits dem Port eine andere Aufgabe zuweisen)

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    vielen Dank für die antwort. Ich dachte schon das dazu gar keiner eine Idee hat.

    Also dieses Problem ist bei beliebigen Pins. Egal welche Pinns oder welcher Port...

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    06.12.2005
    Ort
    Hamburg
    Alter
    28
    Beiträge
    86
    Möglichkeit 1 wäre es mit einem anderen chip zu testen ode variante 2 stat mit toggle es mal mit portx.x =1 zu versuchen(sicher das die LED heil ist?)

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Definiere das Port ausdrücklich für Output
    Ddrd.3 = 1 'Ausgang setzen für LED

    Nutz' nix, schad' nix
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Jippiiiiiiiii!!!!!!
    DANKE!!!!!!!!!!!!!!!

    Ddrd.3 = 1 'Ausgang setzen für LED

    DAS WAR´S!!!!

    vielen vielen DANK!!!

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Also mein Modellbauschalter ist nun fast fertig! Wer Interesse hat aus 4 Kanälen 8 zu machen ohne in der Fernsteuerung zu löten Kann dieses Programm benutzen. Es hat 6 "rastende" Funktionen und 2 "tastende" Funktionen. Habe festgestellt, das es kaum Beschreibungen gibt um etwas am Empfänger anzuschließen sonder fast immer nur um Servo´s anzusteuern:

    '-------------------------------------------------------------------------------
    ' Modellbauschalter 4/8Kanal 18.09.2006 Tobias Blome
    '-------------------------------------------------------------------------------
    'Beschreibung:

    '4Steuerkanäle von Fernsteuerung auf 8 µC - Ausgänge
    'Das Hi-Signal vom Empfänger wird mit "Pulsein" ermittelt!
    'Knüppelstellung mitte hat ca. 121 Zeiteinheiten bei einem 3.6864 MHz Quarz!
    'guter Schaltbereich für:
    'oben einschalten ca.: 140
    'unten einschalten ca.: 100
    'Der mit "Pulsein" gemessene Wert wird in Pulsbreite1-4 ausgegeben.
    'Kanal1-3u/o wird zum speichern benutzt, damit damit nicht bei jedem Durchlauf
    'über "toggle" geschaltet wird, sondern erst wieder,
    'wenn der Knüppel vorher in Nullstellung gewesen ist!
    '"toggle" schaltet den Ausgang von Hi auf Low und wieder zurück!



    '-------------------------------------------------------------------------------
    'Konfiguration µC:
    $regfile = "2313def.dat" 'AT90S2313-Deklarationen
    $crystal = 3686400 'Quarz: 3.6864 MHz

    '-------------------------------------------------------------------------------
    'Ein- Ausgänge:
    Ddrd = &B1000011 '1 Ausgang, 0 Eingang = Pin PD6,1+0 als Ausgang / PD5-2 als Eingang
    Ddrb = &B11111111 '1 Ausgang, 0 Eingang = Pin PB7-0 als Ausgang



    '-------------------------------------------------------------------------------
    'Variablen
    Dim Pulsbreite1 As Word 'Knüppelstellung Knüppel 1 '
    Dim Pulsbreite2 As Word
    Dim Pulsbreite3 As Word
    Dim Pulsbreite4 As Word

    Dim Kanal1o As Bit 'Speicher von Knüppel 1 OBEN
    Dim Kanal1u As Bit 'Speicher von Knüppel 1 UNTEN
    Dim Kanal2o As Bit
    Dim Kanal2u As Bit
    Dim Kanal3o As Bit
    Dim Kanal3u As Bit
    '-------------------------------------------------------------------------------




    '-------------------------------------------------------------------------------
    ' HAUPTPROGRAMM
    '-------------------------------------------------------------------------------


    'Do Loop Schleife
    Do

    'Kanal 1:
    '________

    Pulsein Pulsbreite1 , Pind , 5 , 1 'Pulsbreite auslesen (1=High Impuls)
    'Knüppel rastend OBEN
    If Pulsbreite1 > 140 And Kanal1o = 0 Then 'wenn Knüppel oben und Kanal1oben=0 dann
    Toggle Portb.1 'Pin 1 mal schalten (entweder auf Hi oder Low je nach vorherigem zustand)
    Kanal1o = 1 'Variable Kanal1o setzen damit nicht neu getoggled werden kann
    End If
    If Pulsbreite1 < 140 Then 'Wenn Knüppel nicht oben dann
    Kanal1o = 0 'Variable Kanal1o RÜCKsetzen damit neu getoggled werden kann
    End If
    'Knüppel rastend UNTEN
    If Pulsbreite1 < 100 And Kanal1u = 0 Then
    Toggle Portb.0
    Kanal1u = 1
    End If
    If Pulsbreite1 > 100 Then
    Kanal1u = 0
    End If



    'Kanal 2:
    '________

    Pulsein Pulsbreite2 , Pind , 4 , 1 'Pulsbreite auslesen (1=High Impuls)
    'Knüppel rastend OBEN
    If Pulsbreite2 > 140 And Kanal2o = 0 Then
    Toggle Portb.3
    Kanal2o = 1
    End If
    If Pulsbreite2 < 140 Then
    Kanal2o = 0
    End If
    'Knüppel rastend UNTEN
    If Pulsbreite2 < 100 And Kanal2u = 0 Then
    Toggle Portb.2
    Kanal2u = 1
    End If
    If Pulsbreite2 > 100 Then
    Kanal2u = 0
    End If



    'Kanal 3:
    '________

    Pulsein Pulsbreite3 , Pind , 3 , 1 'Pulsbreite auslesen (1=High Impuls)
    'Knüppel rastend OBEN
    If Pulsbreite3 > 140 And Kanal3o = 0 Then
    Toggle Portb.5
    Kanal3o = 1
    End If
    If Pulsbreite3 < 140 Then
    Kanal3o = 0
    End If
    'Knüppel rastend UNTEN
    If Pulsbreite3 < 100 And Kanal3u = 0 Then
    Toggle Portb.4
    Kanal3u = 1
    End If
    If Pulsbreite3 > 100 Then
    Kanal3u = 0
    End If



    'Kanal 4 (Taster / Taster):
    '________

    Pulsein Pulsbreite4 , Pind , 2 , 1 'Pulsbreite auslesen (1=High Impuls)
    'Knüppel tastend OBEN
    If Pulsbreite4 > 140 Then 'Knüppel oben
    Portb. 7 = 1 'Port PB 7 setzen
    Else 'sonst
    Portb. 7 = 0 'Port PB 7 zurücksetzen
    End If
    'Knüppel tastend UNTEN
    If Pulsbreite4 < 100 Then 'Knüppel unten
    Portb. 6 = 1 'Port PB 6 setzen
    Else 'sonst
    Portb. 6 = 0 'Port PB 6 zurücksetzen
    End If



    'Automatikfunktion für Scheinwerfer:
    '___________________________________

    If Portb.0 = 1 Or Portb.1 = 1 Then 'Wenn PB0 oder PB1 Hi sind dann
    Portd.6 = 1 ' PD6 setzen
    Else 'sonst
    Portd.6 = 0 'PD6 RÜCKsetzen
    End If



    'PWM für Kanal 2 auf PB2 + PB3:
    '______________________________


    Loop

    '-------------------------------------------------------------------------------

    End

    '================================================= ===============================
    'Pinbelegung µC
    '================================================= ==============================
    ' Atmel90S2313
    'PD0 = Frei +---U---+
    'PD1 = ResetTaster Reset +1 20+ Vcc+5V
    'PD2 = Kanal 4 FREI ->PD0 +2 19+ PB7 Zusatzfunktion 3 tastend
    'PD3 = Kanal 3 FREI ->PD1 +3 18+ PB6 Hupe / tastend
    'PD4 = Kanal 2 x x Xtal 2 +4 17+ PB5 Zusatzfunktion 2 rastend
    'PD5 = Kanal 1 x x Xtal 1 +5 16+ PB4 Zusatzfunktion 1 rastend
    'PD6 = Licht vorne Kanal 4->PD2 +6 15+ PB3 Licht Boden 2 / rastend
    'PB0 = Licht hinten 1 Kanal 3->PD3 +7 14+ PB2 Licht Boden 1 / rastend
    'PB1 = Licht hinten 2 Kanal 2->PD4 +8 13+ PB1 Licht hinten 2 / rastend
    'PB2 = Licht Boden 1 Kanal 1->PD5 +9 12+ PB0 Licht hinten 1 / rastend
    'PB3 = Licht Boden 2 GND +10 11+ PD6 Licht vorne
    'PB4 = Zusatzfunktion 1 +-------+
    'PB5 = Zusatzfunktion 2
    'PB6 = Hupe
    'PB7 = Zusatzfunktion 3

    'Naja, die Pinbelegung müsst ihr euch
    'etwas hinschieben! Alle + Zeichen untereinander

    'Tobias

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Kann mir jemand sagen wie ich Software PWM auf Pin PB2 und PB3 programmiere?

    Mein RC-Car hat blaue und rote Unterbodenbeleuchtung:
    - rot soll voll an sein.
    - dann wird blau hochgedimmt
    - wenn blau voll an ist soll rot langsam runter gedimmt werden
    - dann wird rot hochgedimmt
    - wenn rot voll an ist soll blau langsam runter gedimmt werden

    und dann wieder von vorne
    müsste man mal als bild hochladen...geht das hier?

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    ich hoffe man kann einigermaßen erkennen, dass die Farbe von Rot über violett nach Blau wechseln soll und dann wieder zurück(die oberen striche sollen hi und die unteren low signal bedeuten)

    ROT_R ._
    ROTR\ /

    BLAU_ _
    BLA/B B \


Berechtigungen

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