pic16f877 int中断后等待toif溢出中断的问题
时间:10-02
整理:3721RD
点击:
我写了个程序,程序是要采样触发中断(RB0下降沿中断),在RB0中断后,启动TIME0计数,计数两次后溢出中断(RA4下降沿中断),此时RB2输出0.1S高电平驱动外部电机动作,必须每次都是RB0中断后才能启动TIME0计数,RB2输出0.1S高电平后等待RB0中断,反复如此。 可是这个protues仿真的时候RB0中断。
以下这个程序RB0中断后启动TIM0计数,给TIM0两个脉冲后RB2能亮灯0.1S(模拟电机),但是给脉冲大于2次的话,再次给RB0脉冲(中断)的时候,RB2就亮灯了,这个这么解释啊?我该怎么写着个程序啊?
RA4口是一直有脉冲过来的,RB0是偶尔有个脉冲过来,必须要RB0有个脉冲之后RA4才开始计数两次中中断
#include<pic.h>
__CONFIG(0X3F71);
volatile NUM;
//int count;
void interrupt ISR(void);
void DELAY(unsigned int);
void main(void)
{
OPTION_REG = 0xB8;
INTCON = 0x90;
NUM=0;
TRISB = 0X01;
RB2=0;
T0IE=0;
TMR0 = 0XFE;
while(1);
{
if(NUM==1)
{T0IE=1;}
else
{T0IE=0;}
}
}
void interrupt ISR(void)
{
if((INTF==1)&&(!NUM==1)) //产生中断
{
//T0IF=0;
//INTE=0;
NUM=1;
RB2=0;
INTF=0;
//count=0;