摘要: 开了两个中断,一个定时,另一个为外部中断,void TIMER0INIT(){T0CON=0B10001000;//1000 0011,PSA=0,分频16;TMR0L=0xDC;TMR0H=0x0B;//INTCON=0B10100000 ;//GIE=1;TMR0IE=1;TMR0IF=0;(=1须软件清零)这里有两种方式都对的。GIE=1;TMR0IF=0;TMR0IE=1;}但是,打开另外一个中断时,为了模块化编程,一般另外建一个函数进行外部中断初始化,然而如果采用寄存器字节形式,编写会带来很大麻烦,不能正常中断。采用位的形式设置中断,为比较好的方式。如下:void key_ini.. 阅读全文
posted @ 2012-07-19 17:52 奔流聚海 阅读(782) 评论(0) 推荐(0) 编辑
摘要: 在C语言中,经常会出现一个项目由多个C文件共同组成,而多个C文件中有时需要引用相同的变量。在嵌入式单片机中,也会出现相同的情况,除了需要条件编译外,还需要全局变量声明:"extern"外部声明。一处进行了定义 unsigned char a ,其他地方再次引用只需要直接声明就好,extern a; 放到c文件中,其他地方调用时extern NvU32 disp_init_flag ;一下还是可以的。放到h文件中不行,每个包含这个h文件的c文件都会赋值,就冲突了. A.带“extern”关键字的语句属于声明(declarations),不是定义(definitions),他不 阅读全文
posted @ 2012-07-19 15:34 奔流聚海 阅读(1394) 评论(0) 推荐(0) 编辑