微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > pic16f877 int中断后等待toif溢出中断的问题

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;
      


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top