mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Was übersehe ich bei diesem PWM


Autor: Pier S. (bigpier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gemeinde ,
Proiere grad die PWM Kanäle des Timer1 vom ATMEGA 168 zu nutzen und es 
geht auch Prinzipiel !!
Es giebt jedoch ein aber , ich hab folgende einstellungen vorgenommen :
   TCCR1A |= (1<<COM1A1)|(1<<COM1B1)|(1<<COM1B0)|(1<<WGM10);
   TCCR1B |= (1<<WGM12)|(1<<CS10);
und so wie ich es aus dem Datenblatt entneme solte ich so ein fast PWM 
aktiviert haben. Somit mit einem 16 MHZ Quarz auf eine frequenz von 
62,5kH kommen aber ich mess mit meinem Oszi nur 31,25kH also genau die 
hälfte !!

Was mach ich schon wieder falsch ????


Danke gruß

Pier

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läuft der uC wirklich mit 16 MHz?

Autor: Pier S. (bigpier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich hab die Fuse Bits auf externem Quarz gesetzt !! Mit dem Timer 1 
erzeugte Zeitbasis stimmt mit dem OSZI überein !!!

Gruß Pier

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde erstmal den Timer vergessen, das Oszilloskop weit weg stellen 
und dann eine LED im Sekundentakt blinken lassen.

Autor: Tassilo Böhr (big_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lasse mal (1<<COM1B0) weg. Wenn ich mir Tabelle 14-2 im Datenblatt 
angucke, glaube ich nicht, daß deine Kombination zulässig ist... Die 
rund 31kHz klingen sehr nach Toggle-Funktion statt gewünschter 
Fast-PWM...

Tassilo

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tassilo Böhr wrote:
> Lasse mal (1<<COM1B0) weg. Wenn ich mir Tabelle 14-2 im Datenblatt
> angucke, glaube ich nicht, daß deine Kombination zulässig ist... Die
> rund 31kHz klingen sehr nach Toggle-Funktion statt gewünschter
> Fast-PWM...
Nö. COM1B1 und COM1B0 gesetzt heißt invertierter Mode für OC1B. COM1A1 
gesetzt und COM1A0 nicht gesetzt heißt nicht-invertierter Mode für OC1A. 
Das müsste eigentlich so stimmen.

Übrigens bezieht sich Tabelle 14-2 auf den 8-Bit-Timer 0. Hier geht es 
aber um Timer 1!

Autor: Tassilo Böhr (big_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also in meinem 168er-Datenblatt (Rev. 2545F-AVR-06/05) gehört Tabelle 
14-2 sehr wohl zum 16Bit-Timer 1 (wie auch das ganze Kapitel 14), 
komisch...

Trotzdem habe ich mich natürlich im Eröffnungsbeitrag verlesen und kann 
mir das (Fehl)Verhalten nun nicht so recht erklären.

Tassilo

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tassilo Böhr wrote:
> Also in meinem 168er-Datenblatt (Rev. 2545F-AVR-06/05)
Aaaah, lad Dir mal ein aktuelles Datenblatt runter! Steht auf Deinem 
vielleicht noch "Preliminary Datasheet" drauf?

Autor: Tassilo Böhr (big_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So isses... In der aktuellen Ausgabe ist es tatsächlich Kapitel 15 ;-)
Aber das hilft dem Pier ja auch nicht weiter...

Tassilo

Autor: Pier S. (bigpier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich Blicks nicht ganz !!
Es ist mir Absolut ein Rätsel die 2 Pwms gehn zawar schön so wie sie 
sollen gegenläufig aber die Frequenz ist die Halbe !!

Gruß Pier

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pier S., am Ende des Holzweges im Kreis zu laufen, bringt Sie keinen 
Meter weiter. Sie müssen einen neuen Weg einschlagen, auch wenn der 
zuerst einmal unsinnig erscheint; zumindest werden Sie mit zunehmendem 
Abstand einen besseren Überblick über das Gelände gewinnen. Also:

1. woher kommt der Faktor 2 ?
  - falscher Systemtakt
  - irgendetwas mit PWM-toggle
  - irgendetwas mit 9-bit-PWM
  - Sie lesen oder interpretieren ein Messergebnis falsch

  Überprüfen Sie diese Punkte; verändern Sie absichtlich die Parameter 
und schauen Sie, was passiert.

2. reduzieren Sie den Code auf das absolute Minimum

3. stellen Sie das Ergebnis von 2. hier ins Forum

4. nehmen Sie einen anderen Controller

5. kontrollieren Sie das define-File

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Nachdem die Nacht schon sehr früh langweilig wurde, der Kaffee aber 
noch lange nicht abgebaut war ...)

Hier meine Minimalversion, allerdings in Assembler:


.def  null  = r0
.def  tmp0  = r16

.cseg

.org  0
  clr    null
  sbi    DDRB,1
  sbi    DDRB,2
  ldi    tmp0,(1<<WGM10)+(1<<COM1A1)+(1<<COM1B1)+(1<<COM1B0)
  sts    TCCR1A,tmp0
  ldi    tmp0,(1<<WGM12)+(1<<CS10)
  sts    TCCR1B,tmp0
  ldi    tmp0,$80
  sts    OCR1AH,null
  sts    OCR1AL,tmp0
  sts    OCR1BH,null
  sts    OCR1BL,tmp0
  rjmp  pc

Autor: Pier S. (bigpier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ich hab des Rätsels lösung!

Der Mega168 hat irgend einen defekt ! Uch hab meinen Code auf dem STK500 
getestet und dort gehts ! Jetzt muß ich irgendwie das SMD Teil von der 
Prototypplatine runter kriegen !!

Danke Euch für die Unterstützung

Gruß Pier

Autor: Pier S. (bigpier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
auch wenn der Trend schon älter ist möchte ich nochmal um Eure Hilfe 
bitten .
Ich habe ein Verständnis Problem bei dieser PWM geschichte ! Wird der 
duty cycle des oben beschriebene PWM in irgend einer weise vom Program 
ablauf beeinflusst abgesehen vom wert des OCR1A/OCR1B !
Ich hoffe ich habe mich klar ausgedrückt!!

Vielen Dank für Eure Hilfe

Gruß

Pier

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.