12
返回列表 发新帖
楼主: icebear

osal下的按键中断流程图

[复制链接]
beini 发表于 2013-4-16 11:32:49 | 显示全部楼层
这个不错 支持下楼主
beini 发表于 2013-4-16 11:59:59 | 显示全部楼层
您好,我还是有一点疑问,当程序执行到osal_set_event的时候,这个时候的events=SYS_EVENT_MSG,那么在主循环中events = (tasksArr[idx])( idx, events );会执行对应的al_ProcessEvent函数;uint16 Hal_ProcessEvent( uint8 task_id, uint16 events )
{
  uint8 *msgPtr;
  
  (void)task_id;  // Intentionally unreferenced parameter

  if ( events & SYS_EVENT_MSG )// SYS_EVENT_MSG=0x8000
  {
    msgPtr = osal_msg_receive(Hal_TaskID);

    while (msgPtr)
    {
      /* Do something here - for now, just deallocate the msg and move on */

      /* De-allocate */
      osal_msg_deallocate( msgPtr );
      /* Next */
      msgPtr = osal_msg_receive( Hal_TaskID );
    }
    return events ^ SYS_EVENT_MSG;
  }
那么为什么会按照楼主的流程图那样执行SampleApp_HandleKeys()函数呢?
beini 发表于 2013-4-16 12:00:54 | 显示全部楼层
灰常感谢楼主提供这么好的流程图,让我这样的新手顿时有了一个整体的把握希望楼主多出这样的流程图!
12
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表