头文件的编写(例子:按钮中断控制LED亮灭)

来源:互联网 发布:牛肉干市场调查数据 编辑:程序博客网 时间:2024/05/16 04:59

有很多人喜欢所有代码写在一起,但我个人认为一旦多了就会很乱,所以我觉得头文件是很有必要的。

举个例,在一个实验中想点亮开发板上的LED灯,又想通过KEY来控制,那样就必须有LED灯和KEY的初始化,还有LED等的变化函数。如果全部写在一起主函数变得就很长了。而且以后增加功能要调用它们时也就变得更长了,阅读的效果也会变差。

1.LED.h——函数声明,头文件调用

#ifndef __LED_H__#define __LED_H__#include <ioCC2530.h>#define LED P1_0void LED_Initial (void);void LED_Toggle (void);#endif

2.LED.c——LED所涉及的函数的定义

#include "LED.h"void LED2_Initial(){  P1SEL &= ~0x02;//定为io口  P1DIR |= 0x02;//定为普通输入口}void LED_Toggle(){  LED=~LED;}


3.KEY.h——函数声明,头文件调用

#ifndef __KEY_H__#define __KEY_H__#include <ioCC2530.h>#define KEY P0_1void KEY_Initial (void);#endif


4.KEY.C——KEY所涉及的函数的定义

#include "KEY.h"void KEY2_Initial(){  P0SEL &= ~0x02;//定为io口  P0DIR &= ~0x02;//定为普通输入口  P0INP |= 0x02;//上拉    EA=1;//开总中断  IEN1 |= 0X20;//开P0中断  P0IEN |= 0x02;//开P0_1中断    PICTL &= ~0X01;//上升沿  P0IFG &= 0x00;//中断控制位  }


5.test.c——测试程序

#include "LED.h"#include "KEY.h"void delay(){  int x,y;  for(x=100;x>0;x--)    for(y=320;y>0;y--);}void main(){  LED_Initial();  KEY_Initial();    while(1);    }#pragma vector = P0INT_VECTOR__interrupt void P0ISR(void){  if(KEY==0){    delay();    if(KEY==0)      if(P0IFG>0){        P0IFG = 0;//中断控制位        LED_Toggle();      }  }}






0 0
原创粉丝点击