Gast
#5052972
Hallo, ich habe eine Frage bzgl. der waveform generation des xmega. Ich benutze den Atxmega128A4U mit einem 16MHz Quarz. Daraus generiere ich eine 128MHz PLL (CLK*4) und einen 32MHz CPU Takt. Ich möchte auf PORTE Pin3 eine ca. 500kHz Rechteckfrequenz ausgeben. Dazu benutze ich die hires unit mit der CLK*4. Folgendes Problem besteht: Versuche ich auf Pin0 diese Frequenz auszugeben funktioniert alles bestens und das Ganze ist stabil wie ein Quarz. Verwende ich PIN3 sehe ich zwei Prolemfälle. 1. Ich schreibe nur in TCE0.CCD oder TCE0.CCA den compare-Wert. Dann sehe ich nur eine undefinierbare Frequenz auf dem Ausgang. Nichts verwertbares (siehe screenshot) 2. Ich schreibe den in beide register, TCE0.CCD und TCE0.CCA. Dann sehe ich meine 500kHz Frequenz. Wie man dem Screenshot entnehmen kann, aber äußerst ungenau. Es hängt nichts am Pin, dieser hängt frei in der Luft bis jetzt. 3. Benutze ich Pin0 und nur TCE0.CCA habe ich absolut wie gesagt kein Problem. Ich habe die Vermutung, dass die hires hier probleme macht und mit unterschiedlichen registern arbeitet CCA und CCD. Bei exakt 500kHz, wo ein sauberer Teil rauskommt, funktioniert es perfekt. Benutze ich 501kHz sehe ich diese drift. Auch hier wieder ber Pin0 und nur CCA funktioniert es mit beiden Frequenzen. Mache ich die hires unit aus, funktioniert es auch auf CCD, dann aber halt nur in sehr groben Schritten. Was soll das? Oder mache ich selber etwas falsch? Danke! Mein Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |

