- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 14

Thema: Tonerzeugung mit Timer funktioniert nicht wie gewollt

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.03.2011
    Beiträge
    5

    Tonerzeugung mit Timer funktioniert nicht wie gewollt

    Hallo, ich hänge seit 2 Stunden an einem einfachen Problem.

    Mein Timer funktioniert nicht wie er soll, ich will Töne mit möglichst exakten Frequenzen erzeugen.
    Aus diesem Grund verwende ich Timerß0 ohne Prescaler. Zusätzlich beträgt der reload 255.
    Allerdings passen die töne nicht, und ich komme nicht drauf, wieso...


    Es wäre nett wenn mir jemand zeigt, wo sich das gehölz vor meinem kopf befindet

    Code:
    volatile unsigned short sound_count=0;
    volatile unsigned short sound_fcount=0;
    volatile unsigned char sound_state=0;
    volatile unsigned short sound_length=0;
    volatile unsigned short sound_freq=0;
    
    void Sound_Beep(unsigned short freq, unsigned short length)
    {
    	sound_length=(F_CPU*length)/1000;
    	sound_freq=(F_CPU/2/freq);
    	sound_state=0;
    	sound_count=0;
    	sound_fcount=0;
    	
    	//Enable timer
    	TCNT0=255;
    	TCCR0=(1<<CS00);
    }
    
    
    ISR (TIMER0_OVF_vect)
    {
    	sound_count++;
    	if (sound_count>sound_length)
    	{
    		PORTD&=~(1<<7);
    		TCCR0=0;		
    	};
    	sound_fcount++;
    	if (sound_fcount>sound_freq)
    	{
    		sound_fcount=0;
    		if (sound_state==0)
    		{
    			sound_state=1;
    			PORTD|=(1<<7);			
    		}
    		else
    		{
    			sound_state=0;
    			PORTD&=~(1<<7);
    		};
    	};
    	TCNT0 = 255;
    }
    Geändert von Patrick91 (26.03.2011 um 22:04 Uhr)

Ähnliche Themen

  1. Timer Overflow funktioniert nicht [erledigt]
    Von robo junior im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 19.11.2008, 17:15
  2. BackLED blinken nicht wie gewollt??
    Von MCClane im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 04.10.2006, 15:47
  3. For-Next-Schleife läuft nicht so wie gewollt :(
    Von jagdfalke im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 24
    Letzter Beitrag: 04.07.2005, 16:20
  4. Timer funktioniert nicht
    Von barlip im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 05.03.2005, 12:33
  5. RC5 mit Timer kombinieren funktioniert nicht
    Von Enrico3 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 07.01.2005, 18:00

Berechtigungen

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

12V Akku bauen