Chirp Signal Generator
Dependencies: mbed
Fork of TAU_ZOOLOG_Playback_Rev1_1 by
Diff: main.cpp
- Revision:
- 20:048516dc1015
- Parent:
- 19:5a6bf2a0ecf6
- Child:
- 21:7aa784deffc8
--- a/main.cpp Mon Mar 26 12:12:37 2018 +0000 +++ b/main.cpp Tue Mar 27 07:58:22 2018 +0000 @@ -1,9 +1,10 @@ /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Generate Chirp Signal - 21/08/2017 % +% Generate Chirp Signal - 27/03/2018 % % Arkadi Rafalovich - % Arkadiraf@gmail.com % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - +% Updates: +% Disable interrupt during chirp out, fixes systic interrupt delays at 1ms interval for 0.5 us Pinout: DAC -- PA_4 -- A2 @@ -67,6 +68,9 @@ while(true) { if (mybutton.read()==0) { // if button pressed, generate pulse out led.write(1); + + ///////////////////////////////////////////////////////////////////////////////// + __disable_irq(); // Disable Interrupts // generate chirp out for (int ii=0; ii<NUM_SAMPLES; ii++) { // toogle io for loop frequency @@ -89,19 +93,21 @@ // Output value using DAC // HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, ADCValueOut); *(__IO uint32_t *) Dac_Reg = (uint16_t)(4095/2); + __enable_irq(); // Enable Interrupts + ////////////////////////////////////////////////////////////////////////////////// // generate delay between pulses // delay post pulse // sets the pulse rate float waitTime = (1.0f/(2.0f*PULSE_RATE) - (((float)NUM_SAMPLES)/1000000.0f)); - if (waitTime > 0){ + if (waitTime > 0) { led.write(0); wait(waitTime); led.write(1); wait(1.0f/(2.0f*PULSE_RATE)); - }else{ - wait(0.5); - printf("!!! Error Wait time is negative %f !!!\r\n", waitTime); - wait(0.5); + } else { + wait(0.5); + printf("!!! Error Wait time is negative %f !!!\r\n", waitTime); + wait(0.5); } } // end button press led.write(0);