-         

Ergebnis 1 bis 2 von 2

Thema: AVR Melodie

  1. #1

    AVR Melodie

    Anzeige

    Hallo,

    ich wollte mit meinem atmega664 mal einen ton erzeugen, dies ist mir auch gelungen, doch jetzt müsste ich die Lautstärke einstellen und ich hab keine ahnung wie das geht.
    (Ich weiß google ist dein freund, aber ich hab nichts gefunden, jedenfalls nicht in C)

    Mein derzeitiger Code sieht so aus:

    Code:
    #include <avr/io.h>
    #include <util/delay.h>
    
    void InitPWM()
    {
      TCCR1A = (1<<COM1A1) | (1<<WGM11);
      TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10);
    	
      DDRD = (1 << PD5 );
    	
      ICR1 = 0x0FFF;
    }
    
    void SetPWMOutput(uint8_t duty)
    {
    	OCR1A=duty;
    }
    
    void Wait()
    {
    	_delay_loop_2(3200);
    }
    
    void main()
    {
    	uint8_t tone=0;
    
    	InitPWM();
    
    	while(true)
    	{
    		for(tone=0;tone<255;tone++)
    		{
    			SetPWMOutput(tone);
    
    			Wait();
    		}
    
    		for(tone=255;tone>0;tone--)
    		{
    			SetPWMOutput(tone);
    
    			Wait();
    		}
    	}
    }
    Danke,

    Gruß I_-_I---c

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    In Grenzen kann man die Lautstärke über das PWM Verhältnis einstellen, vor allem wenn man zwischen dem PWM Ausgang und dem Lautsprecher einen Tiefpass hat und so die Oberwellen etwas dämpft.

Berechtigungen

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