国赛CC2530练习【点对点按键控制呼吸灯】

T1

1|0A板子

#include "hal_defs.h" #include "hal_cc8051.h" #include "hal_int.h" #include "hal_mcu.h" #include "hal_board.h" #include "hal_led.h" #include "hal_rf.h" #include "basic_rf.h" #include "hal_uart.h" #include <stdio.h> #include <string.h> #include <stdarg.h> #define LED1 P1_3 #define LED2 P1_4 #define LED3 P1_0 #define LED4 P1_1 #define SW P1_2 unsigned char Send[2] = {0}; unsigned char Read[2] = {0}; /*A*/ /*****点对点通讯地址设置******/ #define RF_CHANNEL 20 // 频道 11~26 #define PAN_ID 0x1010 //网络id #define MY_ADDR 0xA //本机模块地址 #define SEND_ADDR 0xB //发送地址 /**************************************************/ static basicRfCfg_t basicRfConfig; // 无线RF初始化 void ConfigRf_Init(void) { basicRfConfig.panId = PAN_ID; basicRfConfig.channel = RF_CHANNEL; basicRfConfig.myAddr = MY_ADDR; basicRfConfig.ackRequest = TRUE; while(basicRfInit(&basicRfConfig) == FAILED); basicRfReceiveOn(); } void init(){ P1SEL &= ~0x1F; P1DIR |= 0x1B; P1 = 0; } void init_time(){ T1CC0L = 0xD4; T1CC0H = 0x30; T1CCTL0 |= 0x04; T1CTL |= 0x0E; EA = 1; T1IE = 1; } void delay(unsigned int time){ unsigned int i; unsigned char j; for(i = 0;i < time ;i++){ for(j = 0;j < 240;j++){ } } } void LS(){ LED1 = 0; LED4 = 1; delay(1000); LED4 = 0; LED3 = 1; delay(1000); LED3 = 0; LED2 = 1; delay(1000); LED2 = 0; LED1 = 1; delay(1000); } /********************MAIN************************/ void main(void) { halBoardInit();//选手不得在此函数内添加代码 ConfigRf_Init();//选手不得在此函数内添加代码 init(); init_time(); while(1) { /* user code start */ while(SW == 0){ Send[0] = 1; basicRfSendPacket(SEND_ADDR,Send,2); } if(Send[0] == 1){ Send[0] = 2; basicRfSendPacket(SEND_ADDR,Send,2); } if(Read[0] == 1){ LS(); } /* user code end */ } } #pragma vector = T1_VECTOR __interrupt void T1(){ T1STAT &= ~0x01; if(basicRfPacketIsReady()){ basicRfReceive(Read,2,NULL); } }

2|0B板子

#include "hal_defs.h" #include "hal_cc8051.h" #include "hal_int.h" #include "hal_mcu.h" #include "hal_board.h" #include "hal_led.h" #include "hal_rf.h" #include "basic_rf.h" #include "hal_uart.h" #include <stdio.h> #include <string.h> #include <stdarg.h> #define LED1 P1_3 #define LED2 P1_4 #define LED3 P1_0 #define LED4 P1_1 #define SW P1_2 unsigned char Send[2] = {0}; unsigned char Read[2] = {0}; /*B*/ /*****点对点通讯地址设置******/ #define RF_CHANNEL 20 // 频道 11~26 #define PAN_ID 0x1010 //网络id #define MY_ADDR 0xB //本机模块地址 #define SEND_ADDR 0xA //发送地址 /**************************************************/ static basicRfCfg_t basicRfConfig; // 无线RF初始化 void ConfigRf_Init(void) { basicRfConfig.panId = PAN_ID; basicRfConfig.channel = RF_CHANNEL; basicRfConfig.myAddr = MY_ADDR; basicRfConfig.ackRequest = TRUE; while(basicRfInit(&basicRfConfig) == FAILED); basicRfReceiveOn(); } void touch(); void init(){ P1SEL &= ~0x1F; P1DIR |= 0x1B; P1 = 0; } void init_time(){ T1CC0L = 0xD4; T1CC0H = 0x30; T1CCTL0 |= 0x04; T1CTL |= 0x0E; EA = 1; T1IE = 1; } void delay(unsigned int time){ unsigned int i; unsigned char j; for(i = 0;i < time ;i++){ for(j = 0;j < 240;j++){ } } } void LS(){ LED1 = 0; LED4 = 1; delay(300); LED4 = 0; LED3 = 1; delay(300); LED3 = 0; LED2 = 1; delay(300); LED2 = 0; LED1 = 1; delay(300); } void HX(){ unsigned int i,j; for(i = 0;i < 1000;i++){ do{ for(j = 0;j < i ;j++){ LED4 = 1; touch(); } for(j = 0;j <1000 - i ;j++){ LED4 = 0; touch(); } }while(Read[0] > 1); } for(i = 0;i < 1000;i++){ do{ for(j = 0;j < i ;j++){ LED4 = 0; touch(); } for(j = 0;j <1000 - i ;j++){ LED4 = 1; touch(); } }while(Read[0] > 1); } } void touch(){ if(SW == 0){ while(SW == 0); halMcuWaitMs(150); if(SW == 0){ Send[0] = 1; basicRfSendPacket(SEND_ADDR,Send,2); } } } /********************MAIN************************/ void main(void) { halBoardInit();//选手不得在此函数内添加代码 ConfigRf_Init();//选手不得在此函数内添加代码 init(); init_time(); while(1) { /* user code start */ touch(); if(Read[0] >= 1){ HX(); } /* user code end */ } } #pragma vector = T1_VECTOR __interrupt void T1(){ T1STAT &= ~0x01; if(basicRfPacketIsReady()){ basicRfReceive(Read,2,NULL); } }

__EOF__

本文作者~内个臣呐~
本文链接https://www.cnblogs.com/Xin-chen/p/16776561.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ~内个臣呐~  阅读(337)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示