PWM in 16-Bit Modus mit mega168 oder mega128

OP #441455
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Problem die mega128 und 168 im 16-bit PWM Modus zu 
betreiben.

Im init habe ich folgendes code:
1
//TIMER1 initialize - prescale:256
2
// WGM: 7) PWM 10bit fast, TOP=0x03FF
3
// desired value: 100Hz
4
// actual value: 28,125Hz (255,6%)
5
void timer1_init(void)
6
{
7
 TCCR1B = 0x00; //stop
8
 TCNT1H = 0xFC; //setup
9
 TCNT1L = 0x01;
10
 OCR1AH = 0x03;
11
 OCR1AL = 0x00;
12
 OCR1BH = 0x03;
13
 OCR1BL = 0x00;
14
 ICR1H  = 0x03;
15
 ICR1L  = 0xFF;
16
 TCCR1A = 0xC3;
17
 TCCR1B = 0x0C; //start Timer
18
}

ansteuern tue ich mit folgender funktion:
1
void PWM(int PWM)
2
{
3
OCR1AH=PWM/0xFF);
4
OCR1AL=PWM%0xFF);
5
}

und es geht immer nur mit 10bit...

ATMEL schreibt in den Datenblättern beim 168er würde man über den Timer1 
einen und mit dem 128er sogar 6 16-biter PWMs erzeugen können.

Mit dem 128er wollte ich zwei 16bitter als ausgang, undzwar über timer1 
und dann OCR1An und OCR1Bn...
Geht auch nur 10Bit. ich versteh das nicht.

Würde mich sehr freuen wenn mir jemand verraten würde wie das mit den 
dingern mit 16bit geht.

gruss abdal
Gast #441523
Lesenswert?
• ▲
▼
> ich habe ein Problem die mega128 und 168 im 16-bit PWM Modus zu
> betreiben.

Dann gehört dein Posting nicht in die Codesammlung.

Du solltest dir übrigens angewöhnen, die Bits in den I/O-Registern mit 
Namen anzusprechen. Die einzelnen Bits wieder aus den Hexzahlen 
rauszuklamüsern ist wirklich umständlich und nervt.

Wie du in oben im Kommentar schon schreibst, benutzt du den Timer im 
Modus 7 (PWM 10bit fast). Wieso wundert es dich, dass du dann nur 10 Bit 
hast?
Gast #442821
Lesenswert?
• ▲
▼
Hallo Abd Al,
ich sehe, Du benutzt ICCAVR. Den kennen hier im Forum allerdings nur die 
wenigsten.
Für das, was Du haben willst, musst Du im AppBuilder den "Waveform mode" 
entsprechend einstellen.

Gruß Johannes

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.