本帖最后由 chandler-00 于 2012-6-26 15:39 编辑
先上程序,打算用rb0口的外部中断,中断计数两次控制rd0 ,rd1端口电压反向,可是中断一直进入不了用的是hitech 的编译器
求大神帮助!!!求hitech 中断的例程
//#include <p18F4685.h>
#include <htc.h>
#pragma config OSC=HS
#pragma config WDT=OFF
#pragma config LVP=OFF
unsigned char i;
void inter();
void interrupt HI_ISR()
{
if (INTCONbits.INT0IF == 1)
inter();
}
void main(void)
{
i = 0;
//端口输入输出设置 初始化
TRISDbits.TRISD0 = 0;
TRISDbits.TRISD1 = 0;
PORTDbits.RD0 = 0;
PORTDbits.RD1 = 1;
TRISBbits.TRISB0 = 1; // RB0设置输入 ,外部中断
//中断允许
INTCONbits.PEIE = 1; // peripheral interrupt enable
INTCONbits.GIE = 1; // global interrupt enable
INTCONbits.INT0IE = 1; //允许int0外部中断
INTCONbits.INT0IF = 0; //INT0外部中断标志为清零
//INTCONbits.RBIE = 1 ; //允许rb端口电平变化中断
//INTCON2bits.RBIP = 1; //int0始终高优先级
while (1) //等待中断发生
{
if (i = 2)
{
PORTDbits.RD0 = ~PORTDbits.RD0;
PORTDbits.RD1 = ~PORTDbits.RD1;
i = 0 ;
}
}
}
void inter()
{
i ++;
INTCONbits.INT0IF = 0 ;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
试过了,如果直接改的话,hitech 编译器通不过
中断的写法跟maplab c 有区别,不知你有没有hitech 的中断写好的程序啊?
还是谢谢你!
我一直用maplab c 没用过hitech啊,这样的话只能爱莫能助了,不过我还是觉得出在中断入口这块儿……
调试的时候设置了断点的,总是等待中断发生的状态。。。求大神帮助啊,有中断程序给我参考下也行,感激不尽
一周热门 更多>