winnie 发表于 2009-4-26 10:32:20

关于 #int_ext 中断

关于RB0的pullup,为什么在程序一开始,#int_ext 中断就执行了呢?
我已经port_b_pullups(TRUE);
并且 配置了:
   ext_int_edge(0, H_TO_L);
   enable_interrupts(int_ext);
按道理来说,只有RB0为低压时候才发生中断啊? 请大侠帮忙。万分感谢!
souce code:
#int_ext
void extInt_RB0(void) {
//start timer1:
//output_high(PIN_A2);
set_timer1(0);
setup_timer_1(T1_INTERNAL);
enable_interrupts(int_timer1);
disable_interrupts(int_ext);
flag_B0 = T;
//output_low(PIN_A2);
}
void main( ) {
   port_b_pullups(TRUE);
。。。

winnie 发表于 2009-4-26 10:33:45

mcu自身设计原因造成
根据对ME片的观察,INTCON,RBIF,在复位的时候,基本不能复位到0,DATASHEET上也说的很明白,复位时候该位为X,即不确定。所以RBCHANGE,一开始就执行一次是很正常的。
页: [1]
查看完整版本: 关于 #int_ext 中断