实验4:基于IAR的Contiki系统在CC2530下的移植 (5)

核能气质少年 分享 2020-04-15 下载文档

www.iotdev.net -专业的物联网|Contiki 6Lowpan|Zigbee|RFID|M2M|无线传感器网络开发论坛

图 2.6 编译结果输出

图 2.7 屏蔽编译警告

2.7 应用程序模板建立

?

includes.h 文件修改

?

建立一个应用程序模板,测试移植结果。首先,includes.h 文件内容如程序

清单 2.6 所示。

IOTDev.net 物联网开发论坛编制

20

www.iotdev.net -专业的物联网|Contiki 6Lowpan|Zigbee|RFID|M2M|无线传感器网络开发论坛

程序清单 2.6 includes.h 文件内容

#ifndef __INCLUDES_H__ #define __INCLUDES_H__ #ifdef __cplusplus extern \{ #endif /***************************************************************************** Standard header files 标准头文件 *****************************************************************************/ #include #include #include #include /***************************************************************************** 操作系统头文件 *****************************************************************************/ #include \#include \ /***************************************************************************** 处理器相关头文件 *****************************************************************************/ #include \ /**************************************************************************** User's header files 用户头文件

****************************************************************************/ #include \??Main.c 测试例程?

在 Main.c 里面建立应测试例程,实现两个 LED 灯的交叉闪烁,具体实现代

码如程序清单 2.7 所示。本节不讲解 Contiki 的具体编程方法,用户可以将

其作为一个例程来运行就行了。

程序清单 2.7 测试例程代码

IOTDev.net 物联网开发论坛编制

21

www.iotdev.net -专业的物联网|Contiki 6Lowpan|Zigbee|RFID|M2M|无线传感器网络开发论坛

#include

/***************************************************************************** ** 全局变量定义

*****************************************************************************/

unsigned int idle_count = 0;

/***************************************************************************** ** 内部函数声明

*****************************************************************************/

//定义控制灯的端口 #define BLED P1_0 //蓝色 LED1 为 P10 #define RLED P1_1 //红色 LED2 为 P11 void led_init() { P1DIR |= 0x03; //P10、P11 定义为输出 RLED = 1; BLED = 1; } PROCESS(led_process, \PROCESS(led_process2, \AUTOSTART_PROCESSES(&led_process,&led_process2); PROCESS_THREAD(led_process, ev, data) { PROCESS_BEGIN(); while(1) { static struct etimer et; etimer_set(&et, CLOCK_SECOND); PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); //打开 LED RLED = !RLED; } PROCESS_END(); // LED1 灯闪一次 } PROCESS_THREAD(led_process2, ev, data) { IOTDev.net 物联网开发论坛编制

22

www.iotdev.net -专业的物联网|Contiki 6Lowpan|Zigbee|RFID|M2M|无线传感器网络开发论坛

PROCESS_BEGIN(); while(1)

{

static struct etimer et; etimer_set(&et, CLOCK_SECOND);

PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); //打开 LED BLED = !BLED; }

PROCESS_END(); // LED1 灯闪一次

} /***************************************************************************** ** Function name: main ** Descriptions:主函数的模板,一般不要随意更改 ** input parameters:无 ** output parameters: 无 ** Returned value: 0 *****************************************************************************/ int main (void) { // 该函数必须被首先调用,它决定了系统时钟以及系统的工作模式 sys_init(); //dbg_setup_uart(); led_init(); //device_init(); //printf(\ // 系统 tick 初始化 clock_init(); process_init(); process_start(&etimer_process, NULL); autostart_start(autostart_processes); //printf(\while(1) { do { } while(process_run() > 0); idle_count++; IOTDev.net 物联网开发论坛编制

23

www.iotdev.net -专业的物联网|Contiki 6Lowpan|Zigbee|RFID|M2M|无线传感器网络开发论坛

/* Idle! */ /* Stop processor clock */ /* asm(\} //return 0; } 3 网络协议栈移植

待续。

作者:www.iotdev.net 论坛任海波 编辑:www.iotdev.net 论坛文档组 日期: 2012-7-22

IOTDev.net 物联网开发论坛编制

24


实验4:基于IAR的Contiki系统在CC2530下的移植 (5).doc 将本文的Word文档下载到电脑

下一篇:土木工程概论复习题及参考答案

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7 元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx