完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
|
|
知识点1:ADC部分
(1)SIM_SCGC6使能ADC的时钟:这里选择第27位ADC0=1 (2)配置ADC配置寄存器(CFG) 7.ADLPC: 低功耗选择; 6-5.ADIV: 时钟分频选择,1/2/4/8分频; 4.ADLSMP:采样时间配置; 3-2.MODE:转换模式选择,单端或差分,不同的精度选择 1-0.ADICLK:输入时钟选择,总线时钟或交替时钟等; (3)配置ADC状态和控制寄存器(SC1n) 7.COCO:转换完成标志 6.AIEN:中断使能 5.DIFF:差分输入使能 4-0.ADCH:输入通道选择 |
|
|
|
|
|
知识点1:ADC部分
(1)SIM_SCGC6使能ADC的时钟:这里选择第27位ADC0=1 (2)配置ADC配置寄存器(CFG) 7.ADLPC: 低功耗选择; 6-5.ADIV: 时钟分频选择,1/2/4/8分频; 4.ADLSMP:采样时间配置; 3-2.MODE:转换模式选择,单端或差分,不同的精度选择 1-0.ADICLK:输入时钟选择,总线时钟或交替时钟等; (3)配置ADC状态和控制寄存器(SC1n) 7.COCO:转换完成标志 6.AIEN:中断使能 5.DIFF:差分输入使能 4-0.ADCH:输入通道选择 |
|
|
|
|
|
|
|
|
|
|
|
(2)计数器寄存器(FTMx_CNT)
15-0.COUNT:16位计数器,主要由向上计数和向上向下计数 (3)通道n控制和状态寄存器(FTMx_CnSC) (4)模寄存器(FTMx_MOD) |
|
|
|
|
|
实验步骤:
1.电路图引脚 飞思卡尔四色板板载两个可调电位器用来模拟ADC输入信号,我们选择其中的RV1来作为信号源: 另外我们选择PORTA7作为FTM控制输出边缘对齐的PWM波形的引脚。 |
|
|
|
|
|
2软件编程
主要分为两个部分,分别是ADC采样可调电位器电压部分和FTM受控制输出PWM波形 (1)ADC部分 ADC配置与初始化:采用ADC0通道单端模式,12位分辨率,其他参数采用默认设置 adc_calibration_param_t MyAdcCalibraitionParam;//calibration parameters adc_user_config_t MyAdcUserConfig;//ADC parameters adc_state_t MyAdcState; volatile int32_t adcValue;//the value we get /* Auto calibration.自动校准 */ ADC_DRV_GetAutoCalibrationParam(HW_ADC0, &MyAdcCalibraitionParam); ADC_DRV_SetCalibrationParam(HW_ADC0, &MyAdcCalibraitionParam); /* Initialization for interrupt mode.中断模式初始化 */ ADC_DRV_StructInitUserConfigForOneTimeTriggerMode(&MyAdcUserConfig);//set as one time trigger mode MyAdcUserConfig.resolutionMode = kAdcResolutionBitOf12or13;//12位单端分辨率,13位为差分模式 ADC_DRV_Init(HW_ADC0, &MyAdcUserConfig, &MyAdcState); |
|
|
|
|
|
2)FLM的PWM模式
配置: ftm_pwm_param_t ftmParam = { .mode = kFtmEdgeAlignedPWM,//边沿对齐PWM模式 .edgeMode = kFtmLowTrue, .uFrequencyHZ = 240000, .uDutyCyclePercent = 50,//占空比 .uFirstEdgeDelayPercent = 0, }; configure_ftm_pins(BOARD_FTM_INSTANCE);//FTM0通道输出 ftm_user_config_t ftmInfo; memset(&ftmInfo, 0, sizeof(ftmInfo)); FTM_DRV_Init(BOARD_FTM_INSTANCE, &ftmInfo);//初始化 (3)主循环 //获取AD值 adcValue = getVoltage(0, false, MyAdcUserConfig.resolutionMode); //PWM输出 FTM_DRV_PwmStart(BOARD_FTM_INSTANCE, &ftmParam, BOARD_FTM_CHANNEL); OSA_TimeDelay(50); //delay 50ms FTM_DRV_PwmStop(BOARD_FTM_INSTANCE, &ftmParam, BOARD_FTM_CHANNEL); //AD转换值作为PWM占空比输出 float a=adcValue; float b= a/4095; ftmParam.uDutyCyclePercent =(b*100); |
|
|
|
|
|
再接再厉,期待大作。
|
|
|
|
|
|
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备组织架构
734 浏览 0 评论
582 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备树组成和结构
840 浏览 0 评论
【敏矽微ME32G070开发板免费体验】点亮WS2812B灯板
1039 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核启动流程
937 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12166 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 14:32 , Processed in 0.679545 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号