标题: 按键调节pwm波的占空比,但是仿真的时候按键不能控制占空比,不懂问题出在哪里,求... [打印本页]

作者: nusrey    时间: 2020-1-19 11:36
标题: 按键调节pwm波的占空比,但是仿真的时候按键不能控制占空比,不懂问题出在哪里,求...
#include <mega16.h>
#include <delay.h>

unsigned char temp1;
   interrupt [INT0] void int0_isr(void)
{
   if(OCR0<0xFF)
  temp1+=5;  //占空比增加
  delay_ms(100);
   }


interrupt [INT1] void int1_isr(void)
{
   if(OCR0>0x63)
   temp1-=5;   //占空比减少
   delay_ms(100);
   }

void main(void)
{

    DDRB.3=1;  //设置pb3为输出
    PORTB.3=1;  //设置端口输出为高电平
    DDRD.2=0x00;  //设置PD2为输入
    DDRD.3=0x00; //设置PD3为输入
    PORTD.2=0x01;  //设定端口PD2为内部上拉方式,无信号输输入时处于高电平状态
    PORTD.3=0x01;  //设定端口PD3为内部上拉方式,无信号输输入时处于高电平状态
                  // initialize the LCD for 2 lines & 16 columns

    MCUCR=0x0A;   //设置INT0,INT1为下降沿触发           
    TCCR0=0x6D;    //定时器0工作于快速PWM模式,oc0取正向,1024预分频
    TCNT0=0x63;    //20ms定时的初始值
    OCR0=0xB1;     //比较匹配的值为中点
    GICR=0xC0;
    TIMSK=0x01;
   SREG.7=0x01;
    temp1=OCR0;

  while(1)                    //依次显示各值
    {
    ;
    }   
}


     interrupt [TIM0_OVF] void timer0_ovf_isr(void)
  {
  SREG.7=0x00;
   TCNT0=0x63;
   OCR0=temp1;
  SREG.7=0x01;
  }


作者: lele5211314    时间: 2020-1-19 18:37
用的哪一款单片机
作者: 13425472500    时间: 2020-1-19 22:08
AVR单片机需要全局中断使能才会触发按键中断,即asm("sei");这里好像没有。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1