- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: PWM funktioniert nicht in Verbindung mit Timer2

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.05.2005
    Ort
    Nähe Mainz
    Beiträge
    33

    PWM funktioniert nicht in Verbindung mit Timer2

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo alle zusammen!

    Ich habe ein Problem mit der selbstständigen Frequenzausgabe von meinem Timer2. Ich habe heute den ganzen Nachmittag das Datenblatt und das Forum durchforstet aber eine Lösung hab ich nicht entdeckt.

    Code:
    '-------------------------------------------------------------------------------
    
    $regfile = "m8def.dat"                       'Atmega8
    $crystal = 8000000                           'Interner Oszillator 8 MHz
    
    '------------------------- Beginn - Timer-Einstellungen ------------------------
    
        DDRB.3 = 1                  'Pin PB3/OC2 ist Ausgang
        TCCR2 = &B0001_1010         'Pin OC2/PB3 togglen, kein PWM, Timer-Reset bei Compare, Clock/8
        OCR2 = 32                   'Periodendauer von 64µs/15,6khz
    
        DDRB.1=1                    'Pin PB1/OC1A ist Ausgang
        TCCR1A = &B0100_0000        'Pin OC1A/PB1 togglen (Status-Wechsel), kein PWM
        TCCR1B = &B0000_1010        'Timer-Reset bei Compare, Clock/8
        COMPARE1A = 10000           'Periodendauer von 20µs/50Hz
    
    '-------------------------- Ende - Timer-Einstellungen -------------------------
    
    
    '---------------------Beginn der Hauptroutine-----------------------------------
    
    Do
    
    Loop
    
    '----------------------Ende der Hauptroutine------------------------------------
    Seht ihr vielleicht einen Fehler, der mir entgangen ist?

    Timer1 funktioniert einwandfrei. Habe es mitm Oszi überprüft. Nur bei PinB.3/Timer2 kommt eine Art Dreieck-Impuls herraus und nicht der wie es sein sollte Hälfte Low-Pegel / Hälfte High-Pegel.

    Vielen Dank für eure Bemühungen.

    Bis dann Jens

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    &B0001_1010
    Mit underscore drinnen ? das geht ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    29.05.2005
    Ort
    Nähe Mainz
    Beiträge
    33
    Was ist denn underscore? Ich bin noch ein ziemlicher Frischling beim programmieren

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    Nen underscore ist das hier: _ (hat mit Programmieren an sich nix zu tun, ist nur der englsche Ausdruck für das Teil)

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    29.05.2005
    Ort
    Nähe Mainz
    Beiträge
    33
    ahso
    ja das geht, funktioniert überall einwandfrei...

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    was mir einfällt, an PB3 ist auch ein Anschluss zum programmieren (MOSI), hast du den Adapter abgesteckt nach dem flashen, sonst könnte der Adpater dazwischenfunken ?

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    29.05.2005
    Ort
    Nähe Mainz
    Beiträge
    33
    Leider war es auch nicht der Stecker der Probleme macht.
    Hier noch einmal alle meine Einstellungen.

    Code:
                7        6          5          4         3         2       1       0
    TCCR      FOC2     WGM20      COM21      COM20     WGM21     CS22    CS21    CS20
                1        0          0          1         1         0       0       1
    • Bit 7 – FOC2: Force Output Compare

    The FOC2 bit is only active when the WGM bits specify a non-PWM mode. However, for
    ensuring compatibility with future devices, this bit must be set to zero when TCCR2 is
    written when operating in PWM mode. When writing a logical one to the FOC2 bit, an
    immediate Compare Match is forced on the waveform generation unit. The OC2 output
    is changed according to its COM21:0 bits setting. Note that the FOC2 bit is implemented
    as a strobe. Therefore it is the value present in the COM21:0 bits that determines the
    effect of the forced compare.
    A FOC2 strobe will not generate any interrupt, nor will it clear the timer in CTC mode
    using OCR2 as TOP.
    The FOC2 bit is always read as zero.

    Laut dieser Aussage müsste FOC2 "1" sein. Aber auch durch diese Änderung ändert sich an meinem Oszi-Bild nichts.

    • Bit 6,3 – WGM21:0: Waveform Generation Mode

    Bit 6 (0) und Bit 3 (1) sind laut DB-Tabelle 42 auf "Clear Timer on Compare
    Match (CTC)" eingestellt.

    • Bit 5:4 – COM21:0: Compare Match Output Mode

    Bit 5 (0) und 4 (1) geben "Toggle OC2 on Compare Match" vor laut DB-Tabelle 43

    • Bit 2:0 – CS22:0: Clock Select

    Bit 2 (0), Bit 1 (1) und Bit 0 (0) stellen den Prescaler laut DB-Tabelle 46 auf 8

    Im Register TCNT2 zählt der µp hoch bis zum Vergleichswert, welcher im Register OCR2 festgelegt wird. Ich weiß mir echt nicht mehr zu helfen. Liegt es an meinem Englisch? Einem Fehler im Datenblatt? Den Atmega kann ich zu 99% ausschließen, habe es nämlich auch schon mit einem anderen ausprobiert und es kam genau das selbe Ergebnis bei herraus.

    Vielen Dank für eure Bemühungen mir weiterzuhelfen

    Bis dahin

    Jens

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Theoretisch sollte es gehen, auch im Simulator funktionierts.
    Was hast Du für ein Board, ist da nicht doch noch was anderes an PB3 angeschlossen, Lötbrücke oder LED mit Widerstand usw. ?
    Musst mal die Lupe auspacken !
    Sieht man von hier so schlecht

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    29.05.2005
    Ort
    Nähe Mainz
    Beiträge
    33
    Ich habe 2 Entwicklungsboards mit einigen Zusätzen (USB, R232, LCD...) dazu noch ein Board, an dem ich alle Pins einzeln über Drahtbrücken mit Peripherie beschalten kann.

    Aber bei allen drei dasselbe dumme Signal an PB3 mit oder ohne Programmierstecker. Schaltplan vom "Steckboard" ist im Anhang zu finden.

    Hat jemand vielleicht die Möglichkeit mein Programm einmal mit Oszi zu testen?

    MfG

    Jens
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken board.gif  

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hab das grad mal am RN-M8 Board probiert, hab aber grad nur einen 16MHz rumliegen, deshalb gehts halt doppelt so schnell wie ausgerechnet, aber ansonsten die Signale schön PWM-mässig, egal ob ISP-Adapter dran oder nicht.

    Hast Du da direkt gemessen an diesen Pins wenn noch nix angesteckt ist, irgendwo muss sich da noch was verstecken was Dir da dazwischenfunkt.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen