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

  • 相关阅读:
    kettle 连接 SQL Server 异常
    Quartz.NET
    过滤器和拦截器
    Spring Web MVC(一)
    Spring(三)之自动装配、表达式
    spring(四)之基于注解(Annotation-based)的配置.md
    Spring(一)之IOC、bean、注入
    Spring(二)之配置.md
    cookie和session详解
    jsp基础与提高(EL、JSTL)
  • 原文地址:https://www.cnblogs.com/jieruishu/p/11803698.html
Copyright © 2011-2022 走看看