![ZigBee学习之33—osal_start_system()_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-5/20/64bacc80-2155-4a87-a7a5-4338e6ef733e/64bacc80-2155-4a87-a7a5-4338e6ef733e1.gif)
![ZigBee学习之33—osal_start_system()_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-5/20/64bacc80-2155-4a87-a7a5-4338e6ef733e/64bacc80-2155-4a87-a7a5-4338e6ef733e2.gif)
![ZigBee学习之33—osal_start_system()_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-5/20/64bacc80-2155-4a87-a7a5-4338e6ef733e/64bacc80-2155-4a87-a7a5-4338e6ef733e3.gif)
![ZigBee学习之33—osal_start_system()_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-5/20/64bacc80-2155-4a87-a7a5-4338e6ef733e/64bacc80-2155-4a87-a7a5-4338e6ef733e4.gif)
![ZigBee学习之33—osal_start_system()_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-5/20/64bacc80-2155-4a87-a7a5-4338e6ef733e/64bacc80-2155-4a87-a7a5-4338e6ef733e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#1楼主:【原创】ZigBee学习之33osal_start_system()文章发表于:2010-02-12 17:34 osal_start_system(); /运行系统【OSAL.c】/此函数是任务系统的主循环函数,他将轮询所有任务事件然后调用相关的任务处理函数,没有任务时将进入休眠状态。void osal_start_system( void )#if !defined ( ZBIT )/虽然搞不清楚这个ZBIT什么东西,不过应该是没有定义的,如果定义了的话所有函数只会顺序跑下来,跑完这个函数整个系统就结束了,没有意义,这里看到这个无限循环应该就是整个系统的运行方式了 for(;)
2、#endif uint8 idx = 0; Hal_ProcessPoll(); / This replaces MT_SerialPoll() and osal_check_timer()./OSAL调用此函数来推送UART,TIMER。【hal_drivers.c】void Hal_ProcessPoll ()/选取定时器 HalTimerTick();/检查定时器的计数溢出【hal_timer.c】void HalTimerTick (void) if (!halTimerRecordHW_TIMER_1.intEnable) halProcessTimer1 ();/处理TIMER1事
3、件void halProcessTimer1 (void) if (halTimerRecordhalTimerRemap(HAL_TIMER_3).channelMode = HAL_TIMER_CH_MODE_OUTPUT_COMPARE)/处理通道模式为输出比较时的情况 if (T1CTL & T1CTL_CH0IF)/检查通道0中断标志看是否达到设定的中断要求 T1CTL &= (T1CTL_CH0IF);/清除中断标志 halTimerSendCallBack (HAL_TIMER_3, HAL_TIMER_CHANNEL_A, HAL_TIMER_CH_MODE_O
4、UTPUT_COMPARE);/给回调函数发送回应void halTimerSendCallBack (uint8 timerId, uint8 channel, uint8 channelMode) uint8 hwtimerid; hwtimerid = halTimerRemap (timerId); if (halTimerRecordhwtimerid.callBackFunc) (halTimerRecordhwtimerid.callBackFunc) (timerId, channel, channelMode); if (T1CTL & T1CTL_CH1IF) T1
5、CTL &= (T1CTL_CH1IF); halTimerSendCallBack (HAL_TIMER_3, HAL_TIMER_CHANNEL_B, HAL_TIMER_CH_MODE_OUTPUT_COMPARE); if (T1CTL & T1CTL_CH2IF) T1CTL &= (T1CTL_CH2IF); halTimerSendCallBack (HAL_TIMER_3, HAL_TIMER_CHANNEL_C, HAL_TIMER_CH_MODE_OUTPUT_COMPARE); else if (halTimerRecordhalTimerRema
6、p(HAL_TIMER_3).channelMode = HAL_TIMER_CH_MODE_OVERFLOW) if (T1CTL & T1CTL_OVFIF) T1CTL &= (T1CTL_OVFIF); halTimerSendCallBack (HAL_TIMER_3, HAL_TIMER_CHANNEL_SINGLE, HAL_TIMER_CH_MODE_OVERFLOW); if (!halTimerRecordHW_TIMER_3.intEnable) halProcessTimer3 (); if (!halTimerRecordHW_TIMER_4.intE
7、nable) halProcessTimer4 (); /* UART的选取*/#if (defined HAL_UART) && (HAL_UART = TRUE) HalUARTPoll();/【hal_uart.c】typedef struct uint8 *rxBuf; uint8 rxHead; uint8 rxTail; uint8 rxMax; uint8 rxCnt; uint8 rxTick; uint8 rxHigh; uint8 *txBuf;#if HAL_UART_BIG_TX_BUF uint16 txHead; uint16 txTail; uin
8、t16 txMax; uint16 txCnt;#else uint8 txHead; uint8 txTail; uint8 txMax; uint8 txCnt;#endif uint8 txTick; uint8 flag; halUARTCBack_t rxCB; uartCfg_t;/UART数据结构,这个数据结构在文档中没有提到,估计是串口缓存区的配置串口需要掌握的是HalUARTOpen函数和halUARTCfg_t数据结构#endif do if (tasksEventsidx) /轮询检查任务 break; while (+idx < tasksCnt); if (id
9、x < tasksCnt) uint16 events; halIntState_t intState; HAL_ENTER_CRITICAL_SECTION(intState); events = tasksEventsidx; tasksEventsidx = 0; / Clear the Events for this task. HAL_EXIT_CRITICAL_SECTION(intState); events = (tasksArridx)( idx, events );/根据事件的类型执行相关的任务处理函数 HAL_ENTER_CRITICAL_SECTION(intState); tasksEventsidx |= events; / Add back unprocessed events to the current task. HAL_EXIT_CRITICAL_SECTION(intState); #if defined( Power_SAVING ) else / Comp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公司年会老板致辞范文(17篇)
- 涉外购货合同(3篇)
- 设计车辆出入口流量与停车位布局方案
- 2024-2025学年四川省九校高二上学期12月联考历史试卷
- 2025年协作资金合同解析
- 2025年中小型企业品牌共建合作协议书
- 2025年专利权许可与技术转移合同分析
- 2025年住宅装饰施工合同
- 2025年企业流动资金贷款偿还协议合同
- 2025年城市规划策划合作发展协议
- 校本教材(生活中的物理)
- 心脏起搏器植入指南
- 融于教学的形成性评价
- 中国古代突骑研究
- 20以内进位加法100题(精心整理6套-可打印A4)
- 高中语文统编版(部编版)必修下册第六单元 大单元公开课一等奖创新教学设计
- 技术标(城镇老旧小区改造工程)
- 山东省各地市地图课件
- 2022年4月天津高考英语试题-(第一次)
- LH制造中心组织架构图职能
- 医院重点岗位工作人员轮岗制度
评论
0/150
提交评论