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.