- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 3 von 3

Thema: Pulsweitenmudulation mit Atmega32

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.02.2005
    Ort
    Erlangen
    Alter
    39
    Beiträge
    88

    Pulsweitenmudulation mit Atmega32

    Hi,
    ich habe meine ersten Versuche einer PWM gemacht. Es scheint zu funktionieren. Ändere ich z.B. den Vergleichswert, so werden meine Rechtecksignale größer bzw. kleiner.

    Code:
    #include <avr/io.h>     // Namen der IO Register
    #include <util/delay.h> // Funktionen zum warten
    // Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden
    
    int main(void)
    {
     DDRC = (1 << 0);         // Nur PC0 als output,  _BV(0) = (1<<0) = 1
     PORTC = 0b11111110;           // Pullups auf allen anderen Pins 
     
     DDRD = (1 << 5);
     TCCR1A = (1<<COM1A1) | (1<<COM1A0) | (1<<WGM11);
     TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10) | (1<<CS10);
     ICR1 = 0x8FFF;
     OCR1A = 0x1FFF;
     
     while (1)
     { 
       PORTC &= 0b11111110; //  0 auf Bit 0 Ausgeben, Rest so lassen
       _delay_ms(10);      //  100 ms Warten
       PORTC |= 0b00000001;     //  1 auf Bit 0 Ausgeben, Rest so lassen
       _delay_ms(10);
     }
    }
    Insgesamt erscheint mir das Signal aber ziemlich verrauscht. Was sagt ihr dazu? (Bild am Anhang)

    Mfg Moebius
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken pwm.png  

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress