超音波位置認識装置
/
ADC_DMA
AD変換をしている(DMA)
Diff: main.cpp
- Revision:
- 0:a621ce2e8838
diff -r 000000000000 -r a621ce2e8838 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jul 17 04:52:19 2018 +0000 @@ -0,0 +1,48 @@ +// F446RE ADC with DMA +// ADC read shifted to 16 bits, our readn is only 12 bits +// messy, TODO need ADC channel from pin number + +#include "mbed.h" +#include "adc.h" +#include "SD.h" + +adc gadc; +SD gSD; + +DigitalIn btn(USER_BUTTON); // User button +PwmOut OSILO_PWM(PC_7); +Serial pc(USBTX, USBRX); // tx, rx + +void user_system_create() +{ + gadc.init(); + gSD.init(); + + // PWM出力の初期化処理 <PWM出力開始> + OSILO_PWM.period_ms(1); // PWM周波数は1kHz(周期:1ms) + OSILO_PWM.write(0.5f); // Duty比:50% +} + +int main() +{ + /* init */ + user_system_create(); + + pc.printf("PUSH USER BUTTON\n"); + while(btn); // Wait user button + + /* Start ADC with DMA */ + pc.printf("Start ADC\n"); + gadc.read(gadc.ADCVal, sizeof(gadc.ADCVal)); + + for(int i = 0; i < ADC_TIMES; i++) { + pc.printf("%d,%d\n",i,gadc.ADCVal[i]); + } + + for(int i = 0; i < ADC_TIMES; i++) { + gSD.setData(i, gadc.ADCVal[i]); + gSD.write(); + } + + gSD.finish(); +}