Ich versuche gerade ein simples 50% PWM-Signal auf einem ATMega644P
(Port PD6) auzugeben. Dazu habe ich in der ArduinoIDE mal ganz simpel
den Code von
https://sites.google.com/site/qeewiki/books/avr-guide/pwm-on-the-atmega328
in die setup()-Funktion kopiert:
1 | #include <avr/io.h>
|
2 |
|
3 | void setup() {
|
4 | DDRD |= (1 << DDD6);
|
5 | // PD6 is now an output
|
6 |
|
7 | OCR0A = 128;
|
8 | // set PWM for 50% duty cycle
|
9 |
|
10 | TCCR0A |= (1 << COM0A1);
|
11 | // set none-inverting mode
|
12 |
|
13 | TCCR0A |= (1 << WGM01) | (1 << WGM00);
|
14 | // set fast PWM Mode
|
15 |
|
16 | TCCR0B |= (1 << CS01);
|
17 | }
|
Ergebnis: nichts, keine Frequenz an dem Ausgang.
Jetzt frage ich mich: geht das in der ArduinoIDE vielleicht nicht so
einfach? Initialisiert die irgendwas, was die Ausgabe wieder verhindert?
Oder wo sonst kann das Problem liegen?