前言最近在学习 Zigbee,每天的主要是任务是:看博客,看 CC2530 的 datasheet 和实践,熟悉片上的 SFR 以及控制板子。学和做内容包括:IO、外部中断、Timer1/3/4、串口实验、ADC温度的转换、看门狗、Sleep Timer 和 DMA。之后做了一个 ...
前言
最近在学习 Zigbee,每天的主要是任务是:看博客,看 CC2530 的 datasheet 和实践,熟悉片上的 SFR 以及控制板子。
学和做内容包括:IO、外部中断、Timer1/3/4、串口实验、ADC温度的转换、看门狗、Sleep Timer 和 DMA。
之后做了一个综合的小实验,基于 CC2530 的温度监测系统,关于协议栈的部分还在学习,所以这个实验没有使用到协议栈。
实验目的
检验学习成果,熟悉 sfr 的配置和片上资源的使用。
实验工具
硬件;CC2530、CCDebug、串口线
软件:IAR Embedded Workbench、串口调试助手
要实现的功能
1. 系统每 2s 统计一次温度,由定时器1 来精确定时;
2. 温度需要通过多次采样减少误差;
3. 得到温度后通过串口发送给上位机;
4. 有看门狗复位的功能;
5. 采集温度和发送数据时都有指示灯。
编码设计
主要分 3 个文件:includes.h、init.h 和 main.c
[ includes.h ]
1 /* includes.h */ 2 /* 3 * 1.ioCC2530.h的包含 4 * 2.全局变量的定义 5 * 3.所有函数的声明 6 * 7 */ 8 9 #ifndef INCLUDES_H10 #define INCLUDES_H11 12 13 #include <ioCC2530.h>14 15 16 #define YLED P1_017 #define BLED P1_118 19 #define LEDON 120 #define LEDOFF 021 22 23 unsigned char output[6] = {0}; // 温度格式:"12.34\0"24 unsigned char receive_char; //25 26 27 void xtal_init(void);28 29 void io_init(void);30 31 void timer1_init(void);32 33 void WDT_init(void);34 35 void FeetDog(void);36 37 void uart0_init(void);38 39 void setTempSensor(void);40 41 float adc_start(void);42 43 void get_temperature(unsigned char *output);44 45 void Uart_Send_String(unsigned char *Data);46 47 void Delay(unsigned int n);48 49 #endif
原标题:基于 CC2530 的温度采集系统(未定稿)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。