找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2061|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

按鍵調(diào)節(jié)pwm波的占空比,但是仿真的時(shí)候按鍵不能控制占空比,不懂問題出在哪里,求...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:682942 發(fā)表于 2020-1-19 11:36 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#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;  //設(shè)置pb3為輸出
    PORTB.3=1;  //設(shè)置端口輸出為高電平
    DDRD.2=0x00;  //設(shè)置PD2為輸入
    DDRD.3=0x00; //設(shè)置PD3為輸入
    PORTD.2=0x01;  //設(shè)定端口PD2為內(nèi)部上拉方式,無信號(hào)輸輸入時(shí)處于高電平狀態(tài)
    PORTD.3=0x01;  //設(shè)定端口PD3為內(nèi)部上拉方式,無信號(hào)輸輸入時(shí)處于高電平狀態(tài)
                  // initialize the LCD for 2 lines & 16 columns

    MCUCR=0x0A;   //設(shè)置INT0,INT1為下降沿觸發(fā)           
    TCCR0=0x6D;    //定時(shí)器0工作于快速PWM模式,oc0取正向,1024預(yù)分頻
    TCNT0=0x63;    //20ms定時(shí)的初始值
    OCR0=0xB1;     //比較匹配的值為中點(diǎn)
    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;
  }

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:93224 發(fā)表于 2020-1-19 18:37 | 只看該作者
用的哪一款單片機(jī)
回復(fù)

使用道具 舉報(bào)

板凳
ID:404239 發(fā)表于 2020-1-19 22:08 | 只看該作者
AVR單片機(jī)需要全局中斷使能才會(huì)觸發(fā)按鍵中斷,即asm("sei");這里好像沒有。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表