-
-
PWM Atmega16?
Hallo,
ich bin schon den ganzen tag am probieren und tüfteln. Ich möchte gerne an Pin18 (PD4 (OC1B)) und Pin19 (PD5(OC1A)) einen festen PWM Wert einstellen. Also Hardware PWM verwenden.
Wieso klappt das mit diesem code nicht?
Bin noch Anfänger und habe sämtliches schon gelesen an Tutorials und Foren.
Ich komme aber einfach nicht dahinter.
#include <avr/io.h>
int main (void) {
DDRB = (1<<PB2);
TCCR1A = (1<<COM1B1)|(1<<WGM10)|(1<<WGM12);
TCCR1B = (1<<CS10);
OCR1B = 128;
OCR1A = 15;
while(1)
{
/* "leere" Schleife*/;
}
/* wird nie erreicht */
return 0;
}
-
Erfahrener Benutzer
Roboter Experte
Hallo,
ohne den Code wirklich genau angeschaut zu haben, PD4 und PD5 müssen als Ausgänge definiert werden. Wenn's das nicht, war nochmal melden.
Gruß
Jens
-
Erfahrener Benutzer
Roboter-Spezialist
hi,
wie der Vorredner schon sagte musst du die Ports als Ausgänge definieren, steht auch so im Datenblatt. Ansonsten sieht dein Code eigentlich richtig aus wo weit ich das sehe.
mfg franz
-
Juhu, ich habs geschafft, naja fast.
Ich kann meine PWM setzen und auf einen festen Wert einstellen
im Beispel 128 also ca. 2,5V
Aber wieso nur am Ausgang OCR1A, ich möchte PWM an OCR1B ebenfalls
realisieren.
Hat jemand eine Lösung?
Hier mein Code:
#include <avr/io.h>
#define F_CPU 8000000
int main (void)
{
DDRD=0b1111111;
// PWM Konfig.
TCCR1B |= (1<<CS10); //
TCCR1A |= (1<<WGM10)|(1<<COM1A1); //PWM 8 Bit
OCR1A=128;
OCR1B=128;
return 0;
}
-
Erfahrener Benutzer
Roboter-Spezialist
hm,
TCCR1A |= (1<<WGM10)|(1<<COM1A1); //PWM 8 Bit
solltest du nicht COM1B1 auch setzen?
Ich denke, durch einen Blick ins Datenblatt würdes du schnelle voran kommen, als wenn Du hier jedesmal auf eine Antwort warten müsstest.
>>DDRD=0b1111111;
Das würde ich übrigens so nichtl schreiben, denn es fällt einem nicht gleich auf, dass da eine 1 fehlt. 0xFF wäre an der Stelle übersichtlicher.
Grüßke
GEald
EDIT: müsste es nicht DDR--B-- heissen stat DDR--d-- ?
-
Danke es klappt und DDRD ist schon richtig. Am PortD sind die Hardware PWM Ausgänge des Atmega16.
Danke nochmal für die Hilfe.
-
Erfahrener Benutzer
Roboter-Spezialist
Ah, ja ok.
Ich dacht ich hab gelesen, du würdest nene Mega8 benutzen, aber es steht ja sogar im topic. Na sowas.... Man wird halt net jünger...
hehe
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen