zoukankan      html  css  js  c++  java
  • 嵌入式成长轨迹39 【Zigbee项目】【CC2430基础实验】【按键控制闪烁】

    前面两个实验的综合,所有寄存器都是之前的

      1 //main.c
      2 #include <ioCC2430.h>
      3 
      4 #define uint unsigned int
      5 #define uchar unsigned char
      6 //定义控制灯的端口
      7 #define RLED P1_0    //定义LED1为P10口控制
      8 #define YLED P1_1    //定义LED2为P11口控制
      9 
     10 #define ON 0
     11 #define OFF 1
     12 
     13 #define K1 P0_6
     14 #define K2 P0_5
     15 
     16 //函数声明
     17 void Delay(uint);        //延时函数
     18 void Initial(void);        //初始化P口
     19 void InitKey(void);
     20 uchar KeyScan(void);
     21 
     22 uchar Keyvalue = 0 ;
     23 uchar GlintFlag[2] = {0,0};
     24 
     25 /****************************
     26 //延时
     27 *****************************/
     28 void Delay(uint n)
     29 {
     30     uint tt;
     31     for(tt = 0;tt<n;tt++);
     32     for(tt = 0;tt<n;tt++);
     33     for(tt = 0;tt<n;tt++);
     34     for(tt = 0;tt<n;tt++);
     35     for(tt = 0;tt<n;tt++);
     36 }
     37 
     38 /*****************************************
     39 //按键初始化
     40 *****************************************/
     41 void InitKey(void)
     42 {
     43   P0SEL &= ~0X60;
     44   P0DIR &= ~0X60; //按键在P05 P06
     45   P0INP |= 0x60; //上、下拉
     46 }
     47 
     48 /****************************
     49 //初始化程序
     50 *****************************/
     51 void Initial(void)
     52 {
     53     P1DIR |= 0x03; //P10、P11定义为输出
     54     RLED = 1;      //LED
     55     YLED = 1;    
     56 }
     57 
     58 /*****************************************
     59 //读键值
     60 *****************************************/
     61 uchar KeyScan(void)
     62 {
     63   if(K1 == 0)
     64   {
     65     Delay(100);
     66     if(K1 == 0)
     67     {
     68       while(!K1);
     69       return(1);
     70     }
     71   };
     72   if(K2 == 0)
     73   {
     74     Delay(100);
     75     if(K2 == 0)
     76     {
     77       while(!K2);
     78       return(2);
     79     }
     80   };
     81 
     82 
     83   return(0);
     84 }
     85 
     86 /***************************
     87 //主函数
     88 ***************************/
     89 void main(void)
     90 {
     91     Initial();        //调用初始化函数
     92         InitKey();
     93     RLED = ON;        //开红灯,表示系统工作
     94         YLED = ON;
     95     while(1)
     96     {
     97           Keyvalue = KeyScan(); //扫键
     98           if(Keyvalue>0)
     99           {
    100             if(Keyvalue == 1)
    101               GlintFlag[0] = !GlintFlag[0];
    102             if(Keyvalue == 2)
    103               GlintFlag[1] = !GlintFlag[1];
    104           };
    105 
    106         if(GlintFlag[0]==0)
    107         {
    108           RLED = !RLED;        //闪灯
    109           Delay(4000);
    110         }
    111         else
    112           RLED = OFF;         //关灯
    113 
    114         if(GlintFlag[1]==0)
    115         {
    116           YLED = !YLED;
    117           //if(GlintFlag[0] == 0)
    118           Delay(4000);
    119         }
    120         else
    121           YLED = OFF;
    122     }
    123 }
  • 相关阅读:
    Xtrabackup的安装
    在 CentOS 7上Virtualbox+phpVirtualBox完整虚拟化环境部署
    用分离、附加的方式实现sql server数据库的备份和还原
    Oracle 11g透明网关连接Sqlserver
    硬盘SMART检测参数详解[转]
    安装了 R2 Integration Servic 之后,SQL Server 2008 Management Studio报错
    jenkins获取git上的源码
    CentOS7配置防火墙
    CentOS 7 安装 Oracle 11.2.0.4
    oralce 11.2.0.4手动创建EM
  • 原文地址:https://www.cnblogs.com/zeedmood/p/2666894.html
Copyright © 2011-2022 走看看