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.