3.zigbee开发,OSAL原理及使用(类似操作系统)

一。cc2530(zigbee的一种芯片)使用中断

通过使用OSAL进行事件的切换,就是中断。

二。OSAL初步使用

1.对zigbee的工程文件进行分析(上一节的工程模版文件)

(1)osal初始化:中断暂停

1.main函数中第一个函数是中断暂停,因为初始化事件是不允许打断。

2.右键进入定义

主要使用的是hal库的中断暂停函数

3.右键hal库函数进入定义

就是把全局的中断置0,全部关闭

4.为什么置一个0就可以全部中断都暂停呢?

类似于公司,上管理下。

(2)osal初始化:osal系统初始化

1.进入main函数中,找到osal_init_system

2.右键进入定义

其中有内存,消息队列,时钟,电源,任务初始化。(所以就对他们进行处理)

3.右键进入任务初始化

taskID是在计算任务的数量,每初始化一个任务,就来增加taskID

4.右键进入autoHome_App_init

这是任务的初始化,初始化串口之类的代码

(3)开启osal系统 (在main函数中,我们写流水灯代码的下方)

1.进入osal_start_system

2.继续进入系统,开始run

3.下面的方框就是轮寻任务,看那个任务有活干

补充:查看轮寻查找的数组的定义

tasksArr就是在任务设置中的那个数组(含盖全部事件)

二。如何写一个新的事件(任务)

1.找到写事件的地方

1.任务初始化

2.进入后,向下拉,找到process事件,找到msg信息。

3.进入后,在下面就可以

2.自己新建一个事件

(1)MY_EVENT为自己新建的宏定义

注意:必须是一位置1,多位置1可能会出现误差,所以设置为按位分事件,那么一共只能设置16个事件

(2)

1.找到周期发送函数(任务的时间处理函数中,autoHome_App_ProcessEvent前面有)

2.第二个参数是个宏,也是个事件(信息发送的事件),不用进入,往下拉,再次找到他

3.进入,这就是无线发送的函数


补充:如何实现周期性的事件?

1.运行时,打开这个事件

2.if判断又会运行,下方定时器又激活

所以中间就放消息发送代码。

相关推荐
点灯小铭18 小时前
基于单片机的窗帘、灯光、空调智能家居控制系统设计
单片机·嵌入式硬件·毕业设计·智能家居·课程设计·期末大作业
飞凌嵌入式20 小时前
【玩转多核异构】T153核心板RISC-V核的实时性应用解析
linux·嵌入式硬件·嵌入式·risc-v
怎么就重名了20 小时前
STM32+蓝牙模块+超声波模块+QT
stm32·嵌入式硬件·qt
oshan201221 小时前
小华HC32L136K8TA 单片机新建 MDK5 工程模板(二)
单片机·嵌入式硬件
三品吉他手会点灯1 天前
STM32F103学习笔记-16-RCC(第4节)-使用 HSI 配置系统时钟并用 MCO 监控系统时钟
笔记·stm32·单片机·嵌入式硬件·学习
Lester_11011 天前
嵌入式学习笔记 - 关于看门狗定时器的喂狗的操作放在中断还是放在主循环
笔记·单片机·学习
bai5459361 天前
LED闪烁功能代码详解
单片机·嵌入式硬件
吃货界的硬件攻城狮1 天前
【STM32】低功耗模式下的IO配置详解(标准库实现)
stm32·单片机·嵌入式硬件
DIY机器人工房1 天前
嵌入式面试题:物联网协议怎么选?Zigbee/蓝牙/LoRa/4G/WiFi优缺点一文读懂
stm32·嵌入式硬件·嵌入式·diy机器人工房·嵌入式面试题
ivy159868377151 天前
JM20329是一款高性能、低功耗的USB桥接芯片,实现串行接口(如SATA、IDE)与USB接口之间的数据转换。
c语言·开发语言·ide·嵌入式硬件·eureka·音视频·视频编解码