Forum: Compiler & IDEs PWM-Signal mit Atmega88


von ksa (Gast)


Lesenswert?

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?

von ksa (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

ksa schrieb:

> DDRD |= (1<<PD5);
> TCCR0A =  (1<<WGM02) |(1<<WGM00) | (1<<COM0B1) ;

WGM02 ist im TCCR0B Register

von Karl H. (kbuchegg)


Lesenswert?

ksa schrieb:
> schon passiert

Und wo veränderst du OCR0B ?

von ksa (Gast)


Lesenswert?

Brauche ich OCR0B überhaupt verändern?

von ksa (Gast)


Lesenswert?

OK, das sieht schon besser, danke

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
Noch kein Account? Hier anmelden.