Hallo,
ich bin Neuling in der Arbeit mit Mikrocontrollern, versuche derzeit
aber mit einem ATMEGA8-16PU einen Frequenzgenerator zu bauen.
Die Frequenz möchte ich von 1Hz-1kHz in 1Hz-Schritten ändern können.
Aber erstmal möcht ich einfach nur mal eine Frequenz an einem Ausgang
abgreifen können.
Dazu hab ich gelesen, dass man das mit einem Timer machen soll, am
besten mit dem 16-bit Timer.
Habe mich auch mal in das AVR-GCC Tutorial eingelesen, nur fehlt mir im
Moment irgendwie noch der Durchblick.
Mein Code sieht derzeit so aus:
1 | int main(void)
|
2 | {
|
3 | DDRD = 0xC0;
|
4 | PORTD = 0x00;
|
5 | PORTB = 0xFF;
|
6 |
|
7 | TCCR1A = (1<<COM1A1) | (1<<COM1A0); //Signal an OC1 wird invertiert
|
8 | TCCR1B = (0<<CS12) | (1<<CS11) | (0<<CS10); //CPU-Takt/8
|
9 | }
|
Jo, also so wie ich das bisher gelesen habe sollte das doch reichen.
Ist es nicht so, dass der Zähler nun mit einer Frequenz von 2MHz
(16MHz/8) heraufzählt und dann beim Überlauf das Signal am Ausgang
invertiert wird?
Oder verstehe ich das falsch?
Hab bisher auf jeden Fall am Ausgang andauernd 1-Signal anstehen.
Bin dankbar für jede Hilfe!
MfG