-
        

Ergebnis 1 bis 10 von 10

Thema: tiny2313 PWM OC0A und OC1A

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

    tiny2313 PWM OC0A und OC1A

    Anzeige

    Hallo, ich möchte 2 Led´s unteschiedlich über PWM ansteuern.

    Stimmt es dass ich für PB2 -> OC0A den Timer0 brauche und für PB3 -> OC1A denTimer1???

    Ausserdem habe ich noch 2 Fehlermeldungen bei:

    Timer0 -> Pwm=8 (was ist an der 8 falsch?)

    Compare0a = 205 (Bascom tut so als kenne es Compare0a nicht)

    Kann mir einer sagen warum und am Besten, was ichändern muss?
    Danke, Tobias

    __________________schnipp____________________
    $regfile = "ATtiny2313.dat" 'ATtiny2313Deklarationen
    $crystal = 20000000 'Quarz: 20.0 MHz

    Config Timer0 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8 'PWM=8 Fehler???(Error86 Invalid parameter?)
    Enable Timer0
    Enable Interrupts 'interrupts einschalten


    'Ein-/Ausgänge:
    Config Pinb.2 = Output
    Config Pinb.3 = Output 'Port B = Ausgang


    Do
    Compare0a = 205 'Warum geht Compare0a nicht? (Error:46 Line: 18 Assignment error [COMPARE0A: 0 205:12], in File: C:\...)
    Compare1a = 51
    Loop

    End

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Um die beiden OCR des Timer 0 zu nutzen ist es nach meinem Wissenstand derzeit noch nötig sich die Register selber zu konfigurieren.
    Schau mal in das Datenblatt und fummel etwas rum.
    Zum Beispiel so:

    Tccr0a = &B01010011
    Tccr0b = &B11000100

    Ich weiß jetzt aber nicht welches Bit in welchem Register was bewirkt. Dazu müsste ich auch noch mal nachkucken.

    P.S.: Kuck mal hier rein! Ich stand auch schon mal vor so einem Problem.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Warum ist das mit dem Timer0 sooo kompliziert?!

    Ich habe es jetzt mit dem Timer1 ausprobiert und das ging ganz einfach(nur das ich jetzt die Platine etwas umlöten muss)

    Tobias

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Wieso "so kompliziert"? Es ist halt so und wirklich leicht. Man muss eben nur einen Blick ins Datenblatt werfen und etwa 10 Seiten lesen. Das ist alles und tut nicht weh.
    Bascom macht mit dem Config-Befehl auch nix anderes als einzelne Bits in den Timer-Counter-Control-Registern zu setzen.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Naja,
    aber da bleibt doch immernoch die Frage, warum Bascom das mit 2 Ausgängen kann und mit den anderen 2 Ausgängen nicht.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Genauso gut könntest Du fragen warum man in Moskau russisch spricht.
    Die Frage wird Dir nur der Entwickler beantworten können und jede noch so kleine Adrenalinspiegelerhöhung ist deswegen verschwendete Energie zumal es eine andere sehr leichte Möglichkeit gibt den zweiten Timer anzusprechen. Deine Frage zeigt mir da eher eine gewisse Bequemlichkeit sich nicht wirklich mit dem Datenblatt auseinandersetzen zu wollen.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    14.10.2005
    Beiträge
    15
    Hallo,

    Timer0 ist 8 Bit, Timer1 ist 16 Bit.
    Das ist der Unterschied.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Das hat aber nichts damit zu tun das es Basicbefehle für den Timer1 als PWM gibt und nicht für den Timer0

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    14.10.2005
    Beiträge
    15
    Hallo E-Fan,

    Das hat es sehr wohl, da bei vielen älteren AVR's, wie zum Beispiel 90S8515 Timer0 keine PWM-Funktion hat, ist es also aus Gründen der Kompabilität nicht möglich. Geht, geht nicht, geht, geht nicht, wär ein schönes durcheinander.
    Sich ein bißchen mit den Registern der AVR zu beschäftigen kann
    auch niemandem schaden.

    Grüße
    Ottmar

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    14.10.2005
    Beiträge
    15
    Noch ein kleiner Tip:

    Schon vor dem Layouten bzw. Löten überlegen welche Funktionen man braucht.
    Wenn Pin x Funktion z hat ist es noch lange nicht gesagt
    das Pin y die Funktion z auch hat.

Berechtigungen

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