Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
7 years, 5 months ago.
BTN problem
Hi , i have this program :
- include "mbed.h"
DAC 20khz
- define DAC_Frequency 20000
AnalogOut dac(A2);
DigitalIn btn(USER_BUTTON); DigitalOut led(D15);
Timer tim; Ticker tic;
C D E F G A B C int freq_table[] = {262, 293, 330, 349, 392, 440, 493, 523}; int sel;
void DAC_Int(void) { int period = 1000000 / freq_table[sel]; int pos = tim.read_us() % period;
Square wave dac = pos > (period / 2) ? 1 : 0;
Sine wave dac = sin(pos * 3.14f * 2 / period) / 2.0f + 0.5f; }
int main() { sel = 0;
tim.start();
tic.attach_us(&DAC_Int, 1000000 / DAC_Frequency);
while(1) { if (btn == 1) { led=!led; sel++; if (sel > 7) sel = 0; wait(0.5); } } }
With BTN press we change the frequency of sine wave . But that doesn't work on my bord ( Nucleo F091). Someone have any idea ?
Thanks