英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 4138|回复: 1
打印 上一主题 下一主题

关于 #int_ext 中断

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-26 10:32:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于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);
。。。
2#
 楼主| 发表于 2009-4-26 10:33:45 | 只看该作者
mcu自身设计原因造成
根据对ME片的观察,INTCON,RBIF,在复位的时候,基本不能复位到0,DATASHEET上也说的很明白,复位时候该位为X,即不确定。所以RBCHANGE,一开始就执行一次是很正常的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-24 08:06 , Processed in 0.051993 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表