瑞薩RA0單片機(jī)連載?ADC
1 目的
本篇主要實(shí)現(xiàn)面向?qū)ο蟮膶?duì)驅(qū)ADC,使用電位容調(diào)節(jié)電壓,采集實(shí)時(shí)電壓并在OLED屏上實(shí)時(shí)展示。
2 實(shí)驗(yàn)器材
1.瑞薩生態(tài)社區(qū)RA0E1開(kāi)發(fā)板:
2.OLED 顯示屏
3.電位器
3 軟件環(huán)境
1.MDK5.39
2.FSP 5.3.0
3.RASC
4 實(shí)現(xiàn)步驟
1.打開(kāi)RASC,選擇FSP 5.3.0(最少選擇5.2.0版本以上)。
2.配置P014為ADC Analog mode 為通道6即ADC0_AN006:
3.新建stack,添加g_adc0_ADC,并按下圖置為通道6,軟件觸發(fā)轉(zhuǎn)換,開(kāi)啟轉(zhuǎn)換結(jié)果中斷觸發(fā),參考電壓為MCU的VSS與VCC,即3.3V
4.向工程中添加drv_adc函數(shù)。
此函數(shù)中主要是把a(bǔ)dc0_CHANNEL_6配置成ptDev,對(duì)外開(kāi)放的接口。我們只需要初始化ADCDev后,就可以通過(guò)他的init、read、value來(lái)做接口訪(fǎng)問(wèn)就行了。
4.在主函數(shù)中我們初始化ADC并讀取ADC值,顯示于OLED屏上:
view plaincopy to clipboardprint?
1.ADCDevTypeDef *ptAdcDev = ADCGetDevice(); // 生成ADC對(duì)象
2. if(NULL == ptAdcDev)
3. {
4. printf(“Error. Not found ADC device!rn”);
5. return;
6. }
7.ptAdcDev->Init(ptAdcDev); // 初始化
8.//在while循環(huán)中讀取,并顯示
9.if(!ptAdcDev->Read(ptAdcDev))
10. {
11. a0=(ptAdcDev->value/4095.0)*3.3;
12. sprintf(sprintfbuff ,”ADC:%d, %d.%d”,ptAdcDev->value, (int)a0, (int)(a0*1000)%1000);
13. ptDispDev->GUI_ShowString(ptDispDev,0,48, sprintfbuff ,16,1);
}
5 實(shí)現(xiàn)效果
將P014接于可變電位器的輸出IO,可以實(shí)時(shí)測(cè)量到電壓:
(本文來(lái)源于《EEPW》202506)
評(píng)論