- LiFePO4 Speicher Test         
Ergebnis 1 bis 5 von 5

Thema: Wie an OCR0A und OCR0B bei ATtiny2313 rankommen (PWM-Frage)

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190

    Wie an OCR0A und OCR0B bei ATtiny2313 rankommen (PWM-Frage)

    Anzeige

    E-Bike
    Hallöle zusammen!

    Nach nem bissel Rumfummel- und Austesterei hab ich beim ATtiny2313 die Beiden Hardware-PWM Ausgänge der Output-Compare Register 1A und 1B (OCR1A und OCR1B) zum laufen bekommen. Nun möchte ich aber noch die beiden anderen Register (OCR0A und OCR0B) nutzen um die zwei "restlichen" PWM-Ausgänge zur Verfügung haben zu können - nur... ich hab absolut NULL Schimmer wie ich die beiden Ausgänge initialisieren kann. Weder die Bascom-Hilfe, die grundsätzlich von zwei OC-Registern pro Timer ausgeht, noch die Bedienungsanleitung des µC haben mir bislang helfen können.
    Vielleicht hat ja jemand von euch alle 4 Hardware-PWM beim 2313 zum laufen gebracht und könnte sich mal dazu äussern.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Hallo,

    auch wenn das jetzt hart klingen mag, das steht im Datenblatt (Seite 77 ff).

    Aber deswegen bekommste trotzdem ne Antwort:

    Die beiden anderen PWM Ausgänge, also die die mittels OCR0A und OCR0B gesteuert werden können, werden vom Timer 0 angesteuert.
    Das einzige Problem das du haben dürftest ist also die entsprechenden Bits in den entsprechenden Registern richtig zu setzen.

    für ne Phase Correct PWM wären das z.B.:

    TCCR0A:
    - WGM00
    - COM0A1
    - COM0B1

    TCCR0B:
    - CS00

    Ob und wie sich das allerdings in Bascom realisieren lässt, kann ich nicht sagen, zumal diese Programmiersprache den Timer 0 ja auch ganz gerne für andere Dinge benutzt (z.B. Servosteuerung) ...

    Meiner Meinung nach dürfte es also notwendig sein, diese Funktionen per Hand einzuprogrammieren.

    Zum laufen bekommen hab ich die 4 PWM's zur gleichen Zeit schon, allerdings nur in Assembler ...

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Unter Bascom lassen sich die Register unter ihren Namen ansprechen.

    Also zb.:

    Tccr0a = &B10100011 'Manuelle Konfiguration von OC0a
    Tccr0b = &B11000001 'Manuelle Konfiguration von OC0b
    Tcnt0 = 255 'Timer Counter Register 0
    Der Codeschnipsel ist zwar von nem Tiny13 aber das geht bei "jedem" AVR.
    Die Namen der Register sind aus dem Datenblatt zu bekommen.
    Gruß
    Ratber

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    @Hanni:
    Ich hab sämtliche Seiten der Bedienungsanleitung zum Thema Hardware-PWM durchgelesen, es ausprobiert, mich grundsätzlich mit dem Timer0 beschäftigt um dann heute festzustellen das ich die ganze Zeit am Timer1 rumgefuhrwerkt hab.
    Obwohl ich von Assembler keine Ahnung hab, hab ich trotzdem versucht die Register direkt anzusprechen - beim Timer1 geht das auch ohne Probleme. Mir bereitet eben nur die Intialisierung der PWM des Timer0 Kopfzerbrechen.
    Mal schauen wann ich das austesten kann. Heute und morgen wird's jedenfalls nüscht mehr weil mich mein Auto heute hat stehen lassen (ist nicht mehr angesprungen )

    @Ratber:
    Danke für den Codeschnipsel!

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    So nu hab ichs ausgetestet und festgestellt das ich auf dem richtigen Weg war, allerdings einen Zahlendreher hatte.

    Trotzdem Danke für die Hilfe!

Berechtigungen

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

12V Akku bauen