-         
Ergebnis 1 bis 2 von 2

Thema: PWM Tastverhältnis stimmt nicht, warum? Atmega88

  1. #1

    PWM Tastverhältnis stimmt nicht, warum? Atmega88

    Anzeige

    Hallo,
    ich versuche gerade ein PWM Signal zu erzeugen, dazu nutze ich einen Atmega88 mit 8MHz quarz. Ich betreibe das ganz im Mode8 also mit ICR1 als TOP Wert und dual-slope.

    Das Problem das ich habe ist folgendes:
    Ich schreibe in OCR1A einen Wert welcher 20%-80% vom ICR1-Wert entspricht, das Signal das am Ausgnag anliegt hat aber leider nicht exakt diesen wert sondern liegt ~1% daneben!! selbst wenn ich 16Bit nutze spricht ICR1=65535 und OCR1A auf 32767 setze dann messe ich immernoch 50,7PWM%
    Was mache ich falsch? Bin langsam total ratlos!

    50%PWM ist nur Beispielhaft, der Wert soll später zwischen 20% und 80% veränderbar sein. Aber erstmal klein Anfangen

    Hoffe es kann mir jemand helfen! Vielen Dank schon mal
    Gruß Felix

    Hier mein Quellcode:
    Code:
    #include <avr/io.h>
    #include <string.h>
    #include <stdlib.h>
    #include <avr/interrupt.h>
    
     
    void INIT_PORTS(void)
    {
    	DDRB=0xff;
    	DDRC=0xf0;
    	PORTB=0;
    	PORTC=0x00;
    	PORTD=0;
    }
    
    
    void INIT_TIMER(void)
    {
    TCCR1A|= (1<<COM1A1)|(0<<COM1A0)|(0<<COM1B1)|(0<<COM1B0)|(0<<WGM11)|(0<<WGM10);
    TCCR1B|= (0<<WGM12) |(1<<WGM13) |(0<<CS12)  |(0<<CS11)  |(1<<CS10);
    TIMSK1|= (0<<ICIE1) |(0<<OCIE1B)|(0<<OCIE1A)|(0<<TOIE1);
    
    
    }
    
    //################# MAIN ########################
    void main (void)
     { 
      INIT_PORTS();
      INIT_TIMER();		
      	  ICR1   = 65535;				  
          OCR1A= 32767; 				//50PWM%
      while (1)
      {
      }
    }

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    14.08.2007
    Ort
    53° 4' 37" N, 8° 48' 32" O
    Alter
    34
    Beiträge
    10
    Hallo Felix123,
    verwendest Du den internen Quarz des Controllers? Wenn ja, dann könnte die Abweichung daran liegen. der interne Quarz ist nicht allzu genau.
    Aber das ist jetzt nur eine wilde Spekulation...
    Gruß,
    Hepta
    Jeder dumme Junge kann einen Käfer zertreten. Aber alle Professoren der Welt können keinen herstellen. Albert Einstein

Berechtigungen

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