欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
Zigbee:cc2530實現led閃爍程序
[打印本頁]
作者:
1091822851
時間:
2024-4-26 11:39
標題:
Zigbee:cc2530實現led閃爍程序
(編寫帖子額的時候不太熟練,倒置部分結構亂了
) 一:解決問題思路
所有單片機,想要達到led閃爍,都需要延遲函數.延遲分為硬件延遲和軟件延遲兩種.硬件延遲涉及到定時器的概念,是后面要講的內容,這里采用軟件延遲的方法.
1 軟件延遲(兩種實現方式)
1.1 用指令實現延時
CC2530的每個指令是一個時鐘,而標準的8051的指令周期是12個時鐘。
若選用32MHZ的時鐘頻率,那么時鐘周期是1/32 us,一個指令也就是1/32us. 而CC2530系統上電默認是16MHZ的內部RC振蕩器
ZStack中大多使用的延時函數如下:
void Delay_us(uint16 value){
while (value--)
{
asm(“NOP”); //一個指令周期占用一個時鐘周期
asm(“NOP”);
asm(“NOP”);
}
}
void Delay_ms(uint16 value)
{
while(1)
Delay_us(1000);
}
復制代碼
1.2 for循環實現延時 (僅做參考,主要用于講解
void delay_us(int n)
{
while(n--)
{
unsigned char a,b;
for(a=173;a>0;a--)
for(b=143;b>0;b--) ;
}
}
復制代碼
2. 配置寄存器
2.1配置寄存器順序
1.PxSEL //端口功能選擇 0為通用I/0 1為外設
2.PxDIR //端口方向選擇 0為輸入 1為輸出 LED不需要配置 PxINP寄存器
2.2 PXSEL 和PXDIR詳細配置參數 (這里沒辦法粘貼圖片,就直接給連接可以自行跳轉
2-2 CC2530的通用IO及相關寄存器 - 夏日清涼~ - 博客園 (cnblogs.com)
3.demo
我的CC2530 led1和led2 是P1_0和P1_1; 而且是低電平點亮 這個根據實際情況近些年編寫</div><div><div class="blockcode">
#include <ioCC2530.h>
#define led1(x) P1_0=~x
#define led2(x) P1_1=~x
void Delay_us(uint16 value){
while (value--)
{
asm(“NOP”); //一個指令周期占用一個時鐘周期
asm(“NOP”);
asm(“NOP”);
}
}
void Delay_ms(uint16 value)
{
while(1)
Delay_us(1000);
}
void main()
{
P1SEL &=~0x07;
P1DIR |= 0x03;
while(1)
{
led2(1);
led1(0);
Delay_ms(1000);
led1(1);
led2(0);
Delay_ms(1000);
}
}
復制代碼
文章參考:
CC2530單片機精確延時的時間分析-CSDN博客
十二、CC2530系統時鐘設置_通過配置時鐘頻率控制寄存器和時間頻率狀態寄存器實現cc2530使用外部32mhz晶-CSDN博客
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1