Forum: Mikrocontroller und Digitale Elektronik Xmega 128A1 PWM


von Guest (Gast)


Lesenswert?

Hallo,

vielleicht kann mir jemand helfen, es geht um den Xmega128A1 auf einem 
STK600. Ich versuche den PWM mit zu Hilfe Name der Atmel TC_driver in 
Betrieb zu nehmen. Es tut sich allerdings nichts.. d.h. Register werden 
richtig gesetzt, aber ich bekomme kein Rechtecksignal auf dem Oszi zu 
sehen. Ich bin bei der Code Erstellung an Hand der AVR1306 
http://www.atmel.com/dyn/resources/prod_documents/doc8045.pdf 
vorgegangen.
Die besagten Treiber bekommt man hier: 
http://www.atmel.com/dyn/resources/prod_documents/AVR1306.zip
Wäre nett wenn mir jemand bei meinem Problem helfen könnte.
Danke.

Viele Grüße,
Guest

/c
#include <avr/io.h>
#include "TC_driver.h"
#include <avr/interrupt.h>

int main(void)
{
  PORTC.DIR = 0x01;
  TC_SetPeriod(&TCC0,0x7FFF);
  TC0_ConfigWGM(&TCC0,TC_WGMODE_SS_gc);
  TC0_EnableCCChannels(&TCC0, TC0_CCAEN_bm);
  TC0_ConfigClockSource(&TCC0, TC_CLKSEL_DIV1_gc);
  sei();

  for(;;)
  {
    TC_SetCompareA(&TCC0, 0x8000);
  }

  return 0;
}

ISR(TCC0_OVF_vect)
{}

von Helmut R. (heru01)


Lesenswert?

Hallo Guest/Gast/Anonymer,

also das Example4 der App1306 habe ich kurz getestet - läuft.

Dein Beispiel hat abgewandelte Werte, Du wartest nicht auf das 
OverflowFlag, aber: bei mir tuts trotzdem.

*Ist PortC_Pin0 immer low bei Dir, immer high bei Dir?
* welche Frequenz willst Du ausgeben?
* vielleicht blöde Frage: hast Du eine Brücke zwischen LED und PC0 
gesetzt? Misst Du auf einem falschen Pin?
Bei mir sehe ich die Led wie sie langsam dimmt und dann ausgeht; nach 
langer Zeit wieder amgeht um danach wieder zu dimmen...

Kleine Empfehlung: setzte die Systemfrequenz als erstes in Deinem 
Projekt.
Gibts ne Appnote zu Clock


Im Beispiel 4 ist das ganze in einer Schleife gelöst, Du bemühst eine 
ISR. Diese ist aber in Deinem Code nicht im PMIC-Controller als ISR 
gemeldet.
(Vom Code her müsstest Du aber trotzdem eine PWM an PC0 sehen.)


Gruß
Helmut

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.