did stuff

This commit is contained in:
twobit 2012-07-26 02:19:59 +02:00
parent 36cca6cfcf
commit 8896169bb2

View File

@ -8,12 +8,6 @@
volatile uint8_t sample_pending; volatile uint8_t sample_pending;
//25kHz
ISR(TIMER0_OVF_vect)
{
ICR1 = synth.output;
sample_pending = 1;
}
// sample rate is 8M / (5 * 64) = 25000 // sample rate is 8M / (5 * 64) = 25000
@ -34,6 +28,14 @@ typedef struct {
static synth_t synth; static synth_t synth;
//25kHz
ISR(TIMER0_OVF_vect)
{
PORTC ^= 0b1;
ICR1 = synth.output;
sample_pending = 1;
}
static void synth_init(void) static void synth_init(void)
{ {
// some test values // some test values
@ -52,7 +54,7 @@ static inline void synth_mix(void)
synth_channel_t *chan = &synth.channels[i]; synth_channel_t *chan = &synth.channels[i];
chan->phase += chan->speed; chan->phase += chan->speed;
synth.output += (chan->phase >> 16) & 0xff; synth.output += (chan->phase >> 8) & 0xff;
} }
} }
@ -94,8 +96,8 @@ static void init_leds(void)
inline void setleds(uint8_t state) inline void setleds(uint8_t state)
{ {
//set leds according to //set leds according to
PORTC |= (state | 0 b00001111); PORTC |= (state | 0b00001111);
PORTC &= ~(state | 0 b11110000); PORTC &= ~(state | 0b11110000);
return; return;
} }
@ -132,12 +134,12 @@ int main(void)
init_leds(); init_leds();
init_motor(); init_motor();
init_pwm(); init_pwm();
sample_pending=0; sample_pending = 0;
synth_init(); synth_init();
sei(); sei();
while(1){ while(1) {
while (0 == sample_pending) ; while (0 == sample_pending) ;
sample_pending = 0; sample_pending = 0;
synth_mix(); synth_mix();