zoukankan      html  css  js  c++  java
  • RTT学习之PWM、ADC设备

    一 使用步骤:  

    1. 查找 PWM 设备获取设备句柄。rt_device_find()

    2. 设置 PWM 周期和脉冲宽度。rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);

    3. 使能 PWM 设备。rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);//rt_pwm_disable(pwm_dev, PWM_DEV_CHANNEL);

    4. while 循环里每 50 毫秒修改一次脉冲宽度pulse的值,并通过rt_pwm_set设置进去。

    5. 将 PWM通道对应引脚和 LED 对应引脚相连,可以看到 LED 不停的由暗变到亮,然后又从亮变到暗。

    6. 在fish中可以通过命令操作pwm_set pwm1 PWM_DEV_CHANNEL, period, pulse ;pwm_enable/disable pwm1 PWM_DEV_CHANNEL

        7备注可以将方向(直线的斜度)、周期、占空比自定义数据结构更加清晰;                                                                                                                           

    ADC设备:可以将ADC设备名称,通道、ADC值、模拟值自定义成结构体

      

    #define ADC_DEV_NAME        "adc1"  /* ADC 设备名称 */
    #define ADC_DEV_CHANNEL     5       /* ADC 通道 */
    rt_adc_device_t adc_dev;            /* ADC 设备句柄 */  
    rt_uint32_t value;
    /* 查找设备 */
    adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
    /* 使能设备 */
    rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);
    /* 读取采样值 */
    value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);
    /* 转换为对应电压值 */
    //采样值 * 参考电压 / (1 << 分辨率位数),上面示例代码乘以 100 将数据放大,最后通过 vol / 100 获得电压的整数位值,通过 vol % 100 获得电压的小数位值
    vol = value * REFER_VOLTAGE / CONVERT_BITS;///* 参考电压 3.3V,数据精度乘以100保留2位小数*/ rt_kprintf("the voltage is :%d.%02d ", vol / 100, vol % 100); /* 关闭通道 */ rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);

    FISH命令:

      注册:adc probe adc1

           使能、禁能:adc enable 5

           读值 :adc read 5

  • 相关阅读:
    起名
    用超级巡警批量清除被挂马的网页
    我在csdn回复的帖子
    多线程与socket编程
    NET面试汇总
    第5 章: Windows Message Mapping 20080111 09:04 207人阅读 评论(0) 收藏
    oo的开始 分类: VC++ 20071228 14:31 176人阅读 评论(0) 收藏
    Cstring 截获数据 20080110 11:22 234人阅读 评论(0) 收藏
    截取字符串 20080110 08:18 188人阅读 评论(0) 收藏
    CString DOWRD互转 20080110 08:26 378人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/jieruishu/p/11803698.html
Copyright © 2011-2022 走看看