初学cc2530----first day

来源:互联网 发布:淘宝助理 定时上架 编辑:程序博客网 时间:2024/05/17 22:20

近期任务是看一些基本代码,熟悉语法,然后自己运用

  1. 套路
#include <ioCC2530.h>typedef unsigned char uchar;typedef unsigned int  uint;

2 . 常用的延时函数

void DelayMS(uint msec){     uint i,j;    for (i=0; i<msec; i++)        for (j=0; j<530; j++);}

因为LED常用的有四个,而这四个定义
3 . 四个常用LED定义

void DelayMS(uint msec){     uint i,j;    for (i=0; i<msec; i++)        for (j=0; j<530; j++);}

定义进中断的开关

#define KEY1 P0_5       //定义P0.5口为S2控制端uchar KeyValue=0;

四个灯是亮还是灭

void LedOnOrOff(uchar mode){    LED1 = mode;    LED2 = mode;    LED3 = mode;    LED4 = mode;}

设置灯相应的IO口

void InitLed(void){    P1DIR |= 0x13;         //P1.0、P1.1、P1.4定义为输出    P0DIR |= 0x02;         //P0.1定义为输出    LedOnOrOff(0);         //使所有LED灯默认为熄灭状态}

我发现我看的资料上面这些东西设置全是分开的,这样子很方便诶,满满的都是套路
设置开关相应的IO口 采用中断方式

void InitKey(){    P0IEN |= 0x20;          // P0.5 设置为中断方式 1:中断使能    PICTL |= 0x20;          //下降沿触发       IEN1 |= 0x20;          //允许P0口中断;     P0IFG = 0x00;          //初始化中断标志位    EA = 1;                //打开中断}

中断处理函数

/***************************************************************************** 名    称: P0_ISR(void) 中断处理函数 * 描    述: #pragma vector = 中断向量,紧接着是中断处理程序****************************************************************************/#pragma vector = P0INT_VECTOR    __interrupt void P0_ISR(void) {     if(P0IFG > 0)          //按键中断    {        DelayMS(10);       //延时去抖               if(P0IFG > 0)      //按键中断        {            KeyValue = 1;  //产生中断保存中断状态        }      }     P0IFG = 0;             //清中断标志    P0IF = 0;              //清端口0中断标志} 

最后就是主函数

void main(void){    InitLed();             //设置LED灯相应的IO口    InitKey();             //设置KEY相应的IO口    while(1)    {        if(KeyValue == 1)   //如果按键按下LED3、LED2、LED1将倒序流水灯闪烁         {          LED4 = !LED4;                     DelayMS(200);            LED3 = !LED3;                     DelayMS(200);             LED2 = !LED2;                     DelayMS(200);                        LED1 = !LED1;                     DelayMS(200);            KeyValue = 0;        }    }}

其实就是将基本的代码看一遍,然后自己运行,进行修改
我觉得这样子对我整体思路比较有帮助
今天看这些学到了
-四个灯一般定义在哪个口
-延时函数与之前学的没啥区别
-定义IO口的时候尽量分开写,清晰明白
-中断函数跟着#pragma vector = P0INT_VECTOR

0 0