AUTOSAR实验十二 SWC C/S Port控制LED

1.硬件连接

2.SWC配置

    2.1在CFG中配置Port Interface和Port Protypes

    2.2创建SWC 创建port Prototype client

    2.3 在sheet中创建 component,port间建立连接

    2.4 配置trigger和access point

3.代码部分

 

1.硬件连接

==================================================================================

AUTOSAR实验十二 SWC C/S Port控制LED_第1张图片

2.SWC配置

=============================================================

2.1在CFG中配置Port Interface和Port Protypes

AUTOSAR实验十二 SWC C/S Port控制LED_第2张图片

AUTOSAR实验十二 SWC C/S Port控制LED_第3张图片

notedirection是对于IoHwAb来说是进还是出,此处为输入(输入为变量传参,输出为指针作为形参传递数据)。

2.2创建SWC 创建port Prototype client

AUTOSAR实验十二 SWC C/S Port控制LED_第4张图片

2.3 在sheet中创建 component,port间建立连接

AUTOSAR实验十二 SWC C/S Port控制LED_第5张图片

2.4 配置trigger和access point

AUTOSAR实验十二 SWC C/S Port控制LED_第6张图片

3.代码部分

-=======================================================

 

代码部分涉及到了CtApSwcLightLed.c和IoHwAb.c两个文件。重点内容是怎么把值从CtApSwcLightLed.c向下传递到IoHwAb中。(通过函数调用,形参传递),rte层起到一个桥梁的作用,通过宏给IoHwAb中的函数重命名共SWC调用

CtApSwcLightLed.c代码如下:

//static int IoHwAb_CH2_PWM_count = 0;

FUNC(void, CtApSwcLightLed_CODE) RCtApSwc_LightLED(Rte_Instance self){

     IoHwAb_CH2_PWM_count++;

     if( IoHwAb_CH2_PWM_count <=50){

      Rte_CallPpIoHwAb_PwmOut_CH_2(0,0x8000);

     }

    if( IoHwAb_CH2_PWM_count >=50){

      IoHwAb_CH2_PWM_count = 0;

      Rte_Call_PpIoHwAb_PwmOut_CH_2(0,0);

     }

    if( IoHwAb_CH2_PWM_count >=100){

     IoHwAb_CH2_PWM_count = 0;

     }

}

IoHwAb.c代码如下:

FUNC(Std_ReturnType, IOHWAB_CODE) IoHwAb_PpIoHwAbPwmOut_CH_2(

IOHWAB_UINT16 pwm

)

{

Std_ReturnType ReturnValue = E_OK;

Pwm_SetDutyCycle(P_DO_CH2_PWM,pwm);

return ReturnValue;

}

你可能感兴趣的:(AUTOSAR)