Zwei 16-Bit Timer, vier verschiedene PWM Signale? ATMega 162

Gast #1985279
Lesenswert?

Hallo,

Ich versuch gerade aus einem ATMega162, der zwei 16Bit Timer mit je zwei 
Kanälen besitzt vier verschiedene Signale herauszubekommen. Prinzipiell 
müsste das doch möglich sein?

So schaut mein bisheriger code dafür aus:
1
        // Ausgänge setzen
2
  //**********************
3
  DDRD|= ((1<<PD4)|(1<<PD5));
4
  // Set OC1A (PD5) an OC3A (PD4) as an Output
5
  DDRB|= ((1<<PB4));
6
  // Set OC3B (PB4) as an Output
7
  DDRE|= ((1<<PE2));
8
  // Set OC1B (PE2) as an Output
9

10
  // Timer 1
11
  //**********************
12
  TCCR1A &= ~((1<<COM1A0)|(1<<COM1B0)|(1<<WGM10));
13
  TCCR1A |=  ((1<<COM1A1)|(1<<COM1B1)|(1<<WGM11)); 
14
  // Celar OC1A on Compare Match, set OC1A on TOP
15
  
16
  TCCR1B &= ~((1<<CS10)|(1<<CS12));
17
  TCCR1B |=  ((1<<WGM13)|(1<<WGM12)|(1<<CS11));
18
  
19
  ICR1  = 50000;   
20
  // set PWM value for Counter-TOP
21
  
22
  // Timer 3
23
  //**********************
24
  TCCR3A &= ~((1<<COM3A0)|(1<<COM3B0)|(1<<WGM30));
25
  TCCR3A |=  ((1<<COM3A1)|(1<<COM3B1)|(1<<WGM31)); 
26
  // Celar OC1A on Compare Match, set OC1A on TOP
27
  
28
  TCCR3B &= ~((1<<CS30)|(1<<CS32));
29
  TCCR3B |=  ((1<<WGM33)|(1<<WGM32)|(1<<CS31));  
30

31
  ICR3  = 50000;     
32

33
  
34
  // Startwerte setzen
35
  //**********************
36
  OCR1A = 2750;  
37
  OCR1A = 5050;  
38
  OCR3A = 3500;  
39
  OCR3B = 4500;



Nun ja, ich mess auch an den Ausgängen OC3B (PB4) und OC1B (PE2) schöne, 
saubere PWM-Signale. Jedoch an den anderen beiden Ports kommt irgendwie 
Mist heraus. Das Signal besteht iwie nur aus zwei entgegengesetzten 
Peaks (falls jemand wünnscht poste ich ne ähnliche Grafik zur 
verdeutlichung).

Kann das sein muss ich die Timer synchronisieren? Oder gehts das was ich 
vor hab prinzipiell nicht?

Wäre echt dankbar für ein wenig Hilfe, bin so langsam am verzweifeln.

Gruß Sven
Gast #1985442
Lesenswert?

Danke für den Hinweis!

Liegt aber wohl doch nicht daran!
Bekomm jetzt an drei Ports ein schönes PWM-Signal allerdings zeigt mir 
das Osci an OC1A (PD5) ein Signal ähnlich wie das Bild im Anhang an.

Weiß jemand Rat?

Grß Sven
Angehängte Dateien:
Gast #1985650
Lesenswert?

Hallo,

Also ich hab das ganze mit nem zweiten Satz Bauteile mal auf nem zweiten 
Steckbrett aufgebaut, und ich Messe den gleichen Mist wie zuvor. Taskopf 
hab ich auch schon nen anderen ausprobiert. Kam das selbe bei raus! ich 
hab das Steckbrett durchgepiepst, hab die Signale direkt am Pin 
gemessen. Nichts hilft.

Ich programmier erst seit zwei Tagen über Jtag und kenn mich da noch 
nicht sonderlich gut aus! Kann das damit was zu tun haben? Als 
Programmiergerät das AVR Dragon! Ich hab euch mal den gesamten Code noch 
in den Anhang gepackt!

Verwende ein Tektronix TDS1002B Osci!

Zu meiner Schaltung noch kurz:

Ich hab den ATMega 162 auf dem Steckbrett. Da ist die Jtag 
Programmierschnittstelle herausgeführt und ansonsten noch ein 20 MHz 
Quarz mit den beiden 22pF Kondensatoren. Dann hab ich noch nen 100nF 
zwischen VCC und GND!

Vielleicht kann jemand mit den zusatz Infos mehr anfangen!

Danke schon mal im voraus.
Gruß Sven
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren