I_-_I---c
09.09.2011, 19:53
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:
#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
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:
#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