⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interrupt.h~

📁 電源供應器設計利用鍵盤介面輸入電源電壓值以SPI界面傳至另一顆CPU做前端之運算結果傳回做LED顯示
💻 H~
字号:
//interrupt [TIMER1_OVF1_vect] void Timer1_OVF_interrupt(void)
//{ 
   
//  TCNT1=45536;   
//}
interrupt [TIM0_OVF] void Timer0_OVF_interrupt(void)
{ 
  unsigned char InByte,i,k;   
   
  TCNT0=232;  //232; 
  PORTD|=0x04; 
  TickCount++;
  if (TickCount>3) {
    TickCount=0;
      for (i=0;i<TmrNum;i++) {
        if (Tmr[i].Con!=0x0) {
          Tmr[i].Cv++;
          if (Tmr[i].Cv>=Tmr[i].Pv) {
             Tmr[i].Con&=0x7f;
             Tmr[i].Cv=0;
             if (Tmr[i].Con==0x01) {
               Tmr[i].Con=0;
               Tmr[i].ActPro();
             }
          }
        }
     }
  }

  CurPcOut<<=1;
  CurPcDig++;
  if (  CurPcDig >= 4 ) {
     CurPcDig=0;
     CurPcOut=0x01;
  }
  //XBYTE[ PA ]=0xff;       //Blanking
  PORTC=0xff;               //Blanking

  //i=CurPcIn;
  //i&=0xf0;
  //i<<=1;
  //if ( CurPcDig++ >= 4 ) {
  //  CurPcDig=0;
  //  i=0x01;
  //}
  //CurPc&=0xf0;
  //CurPc|=i;
  //XBYTE[ PC ]=CurPc;
  //k=CurPcDig<<3;
  k=0;
  CurPcHi=PINC; //XBYTE[ PD ];   
  CurPcHi=~CurPcHi;   
  CurPcHi>>=4; 
  for ( i=0;i<4;i++ ) {
    if ( (CurPcHi>>i) & 0x01 ) {
      if ( SnrBuf[k+i]==0xff ) BncCnt[k+i]=0;
      else {
        if ( BncCnt[k+i]++ > Bounce ) {
          SnrBuf[k+i]=0xff;
          KeyFlag=0xff;
          PressKeyCode=k+i;
        }
      }
    }
    else {
      if ( SnrBuf[k+i]==0 ) BncCnt[k+i]=0;
      else {
        if ( BncCnt[k+i]++ > Bounce ) {
           SnrBuf[k+i]=0;
        }
      }
    }
 }

 //XBYTE[ PB ]=LedCode[CurLedDspBuf[CurPaDig]];
 //XBYTE[ PA ]=~CurPa;  
 PORTB=LedCode[CurLedDspBuf[CurPcDig]]; 
 PORTC=CurPcOut;    
 PORTD&=0xfb; 
  //InByte=PIND;    
  /* 
  PreSnrBuf[0]=SnrBuf[0];
  PreSnrBuf[1]=SnrBuf[1]; 
  if ((InByte&0x01)==0x00) {
    if (SnrBuf[0]==0xff) BncCnt[0]=0;
    else if ((BncCnt[0]++)>BOUNCE) SnrBuf[0]=0xff;
  }
  else {    
    if (SnrBuf[0]==0) BncCnt[0]=0;
    else if ((BncCnt[0]++)>BOUNCE) SnrBuf[0]=0;
  } 
      
  if ((InByte&0x02)==0x00) {
    if (SnrBuf[1]==0xff) BncCnt[1]=0;
    else if ((BncCnt[1]++)>BOUNCE) SnrBuf[1]=0xff;
  }
  else {    
    if (SnrBuf[1]==0) BncCnt[1]=0;
    else if ((BncCnt[1]++)>BOUNCE) SnrBuf[1]=0;
  } 
  if (SnrMode==0) {
    if (TimerOff<200) TimerOff++;
  }  
  if (SnrMode==1) {
    if (TimerNear<200) TimerNear++;
  }  
  if (SnrMode==2) {
    if (TimerFar<200) TimerFar++;
  }     
  LastBulbMode=BulbMode; 
  if (TimerOff>100) BulbMode=0;
  if (TimerNear>100) BulbMode=1;
  if (TimerFar>100) BulbMode=2;
  if ((LastBulbMode==0) && (BulbMode==1)) {
    EnableRamp=1;RampCnt=0;
  }
  if (EnableRamp==1) {  
    TickCount++;
    if (TickCount>=50) {
      TickCount=0;
      RampCnt++;
      if (RampCnt>32768) EnableRamp=0;
    }
  }  
  */   
  /*  
  TickCount++; 
  if (TickCount>=5000) {
      TickCount=0;   
      PORTD=~PORTD; 
      //RampCnt++;
      //if (RampCnt>32768) EnableRamp=0;
  } 
  */    
} 

interrupt [TIMER1_COMPA_vect] void TIMER1_COMPA_interrupt(void)
{   
  //PORTD|=0x08;   
  OCR1A=1024-(PWM>>2);
  PwmFlag=1; 
   //200; 
  //PORTD&=0xf7; 


}


/* 
interrupt [UART_RX_vect] void UART_RX_interrupt(void)
{     
  unsigned char ch; 
  PORTB&=0xfe; 
  ch=UDR; 
  RxdBuf[RxdIndex]=ch&0x7f;  
  if (RxdBuf[RxdIndex]==ETX) {
    ReceivedEnd=1; 
    ReceivedByte=RxdIndex;
    RxdIndex=0;
  }     
  else {
    RxdIndex++;
    if (RxdIndex>99) RxdIndex=0;
  }          
  PORTB|=0x01;  
}   
 
interrupt [UART_TX_vect] void UART_TX_interrupt(void)
{     
  TxdIndex++;
  if (TxdIndex<TxdByte) {   
    UDR=TxdBuf[TxdIndex];  
  }   
  PORTB|=0x01;  
} 
*/ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -