AUTOSAR实验一 ADC数据采集 控制LED亮灭

一、实验目的 

(1)熟悉adc和dio的配置参数,实际操作找出阅读文档没有注意的问题

(2)采集ADC1的 channel 0,当采集到的数据大于一定值得时候关闭LED灯

二、实验环境

Window10

服务器:windows

和服务器交互软件 winscp putty

Autosar Version: 4.2.2

Tresos studio 23.0

MCAL Version: S32K14X_MCAL4_2_RTM_HF8_1_0_1

Compiling environment:greenhill 201714

调试环境:ic5000

 

三、实验步骤

1.通过EB修改MCAL的配置,配置adc和板载RGB灯

2.在EB中验证配置生成output输出文件

3.拷贝MCAL工程文件替代模板工程中的MCAL工程文件

4.执行模板工程文件中的copy批处理文件

5.通过winscp 上传工程

6.通过putty执行编译命令

7.将编译过得工程下载到local

8.通过ic5000下载调试

四、dio配置

第一步配置 DioPort如4.1

这里注意port id和port的对应关系:

  • PortA=0
  • PortB=1
  • PortC=2
  • PortD=3
  • PortE=4

第二步到原理图中找到led用到的port口和pin脚

通过检索led》》LEDRGB_RED》》PTD15

第三步进入DioPort_D 按照如4.2所示进行设置,name设置的名字在函数

Dio_WriteChannel中作为参数使用

例如:

Dio_WriteChannel(DioConf_DioChannel_RGB_RED,1);//加前缀DioConf_DioChannel_

注意:在接下来的port设置中PortPin name虽然也设置为RGB_RED但是这是给自己标记区分使用不作为参数设置,port设置在下面还会提及。

第四步设置Port模块

进入port》》PortContainer》》 GPIO》》PortPin标签页面手动添加RGB_RED,配置参数如4.3所示

图4.1

图4.2

图4.3

五、ADC配置

ADC转化以通道组为单位进行,转化结果存储在自定义的数组中,数组中数据的顺序要特别注意,这里的顺序并不是0通道存在0位置1通道存在1位置,而是根据adc group中channel中的顺序得到的。具体位置界面如下:

图5.1

两种参考电压模式:

VREFH_VREFL

VALTH_VREFL

参考电压需要一个最高值和一个最低值,对这个范围内的电压进行转化。

在这里 VREFL连接到VSSA  VALTH 和VDDA电压一样(这款芯片中)

第二种模式参考电压可以选择内部或者外部电压,依靠单片机配置。

ADC_DMA

ADC_INTERRUPT

adc硬件单元配置中的Adc Transfer Type可以选择dma或者interrupt,在ad转化完成的时候调用。ad转化分为软件触发和硬件触发两种方式。软件触发就是通过API控制是否开模数转化;硬件触发则是通过定时器或者触发源。

六、实现代码

    Adc_StartGroupConversion(AdcGroup_1);
    while(Adc_GetGroupStatus(AdcGroup_1)==ADC_BUSY)
    {
        //waiting for transformaion to complete
    }
    
    Adc_ReadGroup(AdcGroup_1,AdcGroup_1_Res);
    if(AdcGroup_1_Res[0]>4000)
    {
        Dio_WriteChannel(DioConf_DioChannel_RGB_RED,0);
    }   
    else
    {
        Dio_WriteChannel(DioConf_DioChannel_RGB_RED,1);
    }
发布了39 篇原创文章 · 获赞 29 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/wx601056818/article/details/90340786