Hallo, ich möchte ein PWM Signal mit einem Atmega88 erzeugen. Ich habe dazu diesen Code geschrieben: DDRD |= (1<<PD5); TCCR0A = (1<<WGM02) |(1<<WGM00) | (1<<COM0B1) ; TCCR0B |= (1<<CS01) ; OCR0A = 40; In etwas abgewandelter Form konnte ich schon eine Frequenz erzeugen TCCR0A = (1<<WGM01) |(1<<COM0B0); TCCR0B = (1<<CS01 | 1<<CS00); OCR0A = 400; Für das PWM-Signal hat das noch nicht geklappt, kann mir da jemand helfen?
schon passiert
#ifndef F_CPU // optional definieren
#define F_CPU 18432000UL // MiniMEXLE mit 18,432 MHz Quarz
#endif
#include <avr/io.h> // I/O Konfiguration (intern weitere Dateien)
#include "lcd_lib_de.h" // Funktionsbibliothek zum LCD-Display
//Funktionsprototypen
int main() // Start des Hauptprogramms
{
initDisplay();
DDRD |= (1<<PD5);
TCCR0A = (1<<WGM02) |(1<<WGM00) | (1<<COM0B1) ;
TCCR0B |= (1<<CS01) ;
OCR0A = 40
;
//DDRD |= (1<<PD5);
//TCCR1A = (1<<WGM10)|(1<<COM1A1); //8Bit PWM | Nicht invertierte PWM
//TCCR1B = (1<<CS10)|(1<<CS12); //Startet Timer und teilt durch 1024
//ICR1 = 255; //Timer Zählt bis 255
while(1)
{
}
// Initialisierung Display-Anzeige
}
void initDisplay() // Start der Funktion
{
lcd_init(); // Initialisierungsroutine aus der lcd_lib
lcd_gotoxy(0,0); // Cursor auf 1. Zeile, 1. Zeichen
lcd_putstr("Motoransteuerung"); // Ausgabe Festtext: 16 Zeichen
lcd_gotoxy(1,0); // Cursor auf 2. Zeile, 1. Zeichen
lcd_putstr("durchPWM-Signals"); // Ausgabe Festtext: 16 Zeichen
} // Ende der Funktion
ksa schrieb: > DDRD |= (1<<PD5); > TCCR0A = (1<<WGM02) |(1<<WGM00) | (1<<COM0B1) ; WGM02 ist im TCCR0B Register
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.