ZigBee深入浅出---学习笔记19.08.23

今天主要看了一下ZigBee有关的内容,主要包含以下几个方面:外部晶振的选择和相关寄存器操作,16位定时器——定时器1的相关注意事项,ADC采样,看门狗的操作,系统睡眠模式(定时器唤醒),系统睡眠模式(中断唤醒)以及ZigBee协议栈的相关内容,因为之前涉及的不是很深入,所以这一次进行了基础巩固和提升。

第一部分:外部晶振的选择和相关寄存器

CC2530共有以下几个晶振选择,1是内部集成的16M高速晶振,2是内部集成的32K的低速晶振,3是外接的32.768K的低速晶振,4是外接的32M高速晶振。

外部晶振的选择上 采用两个8位寄存器进行操作:
CLKCONCMD寄存器和 CLKCONSTA寄存器

常用的晶振选择代码块:
CLKCONCMD &= ~0x40; //设置系统时钟源为32MHZ晶振
while(CLKCONSTA & 0x40); //等待晶振稳定为32M
CLKCONCMD &= ~0x47; //设置系统主时钟频率为32MHZ

上面是在选择外部晶振时采用的代码,一般只用内部提供的16MHZ的晶振即可,,,但是很多时候会用到外部的32MHZ的晶振,比如串口通信模块,无线通信等要求高速率的工程中,协议栈就是采用外部高速晶振进行处理的。

第二部分:定时器重点内容
这里以定时器1的相关内容为例,定时器1是一个16位寄存器,相关的运行模式之前的笔记中已经提到过了,所以这里不再叙述,这里主要是讨论有关定时器最大计数值的问题,有可能在比赛的时候会让选手自行使用相关内容,那没有办法,只能自己操控相关寄存器和计算最大计数值,其实这些东西都很容易掌握的,这里仅仅说一下定时器最大计数值的换算,定时器最大计数值 = 定时时长(ms)/(1/晶振频率X分频系数),,所以由上式可以得出三个重要的参数,一个是分频系数,一个是晶振,最后一个是定时时长,其实这三个值都是已知的,所以直接计算就可以,,但是如果操作熟练还是建议记住,给出以下几个定时时长 ①模模式下,不分频,即采用1分频,晶振选择内部16M,定时1ms的值是3e80 ②模模式下,采用128分频,晶振选择内部高速晶振,定时1ms 的值是30d4。

第三部分:调用ADC采样的相关样例进行ADC采样(寄存器完成)
float GetTemperature(void)
{
uint value;

ADCCON3 = (0x3E); //选择1.25V为参考电压;14位分辨率;对片内温度传感器采样
ADCCON1 |= 0x30; //选择ADC的启动模式为手动
ADCCON1 |= 0x40; //启动AD转化
while(!(ADCCON1 & 0x80)); //等待 AD 转换完成
value = ADCL >> 4; //ADCL 寄存器低 2 位无效,由于他只有12位有效,ADCL寄存器低4位无效。网络上很多代码这里都是右移两位,那是不对的
value |= (((uint)ADCH) << 4);

return (value-1367.5)/4.5-5; //根据 AD 值,计算出实际的温度,芯片手册有错,温度系数应该是4.5 /℃
//进行温度校正,这里减去5℃(不同芯片根据具体情况校正)
}

/=ADC初始化函数==/
void Init_ADC0()
{
APCFG |= 0x01; //P0_0作为模拟I/O使用
}

/*ADC电压采样函数====*/
void Get_ADC0_Data()
{
D6 = 1;
ADCIF = 0;
//参考电压选择AVDD5引脚,256抽取率,通道0
ADCCON3 = (0x80 | 0x20 | 0x00);
while(!ADCIF); //等待ADC转换完成,
UR0_Send_Byte(ADCH);
UR0_Send_Byte(ADCL);
D6 = 0;
}

第四部分:协议栈的API相关内容:

①理解了相关轮询机制
②学会了添加自己的任务,比如添加温湿度传感器的驱动和初始化等内容
③学会了通过相关结构体变量获取当前网络下的PANID以及该节点的Address,信道号等

本文主要用于学习交流,转载请声明!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coisíní℘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值