📄 tmr1.c
字号:
////////////////////////////////////////////////////////////////////////////////
// Copyright(C) Gniy.Liu RHOSON, Crop. 2007-2008
// Filename: tmr1.c
// Description: Timer1 interrupt
////////////////////////////////////////////////////////////////////////////////
#define _TMR1_C
#include "proj_inc.h"
static U08 Tmr1Cnt10ms;
#define C_TMR1_5MS ((0xffff-TMR1_CONST*OSC)+2)
#define C_TH1_5MS HIBYTE(C_TMR1_5MS)
#define C_TL1_5MS LOBYTE(C_TMR1_5MS)
void Tmr1Init(void)
{
#if (_MCUTYPE_==_MCU_STC89C52_) || (_MCUTYPE_==_MCU_W79E632_)
TH1 = C_TH1_5MS;
TL1 = C_TL1_5MS;
TMOD &= 0x0f;
TMOD |= 0x10; // 0x20,8bit auto reload mode
TR1 = 1;
ET1 = 1;
#if 0
TH0 = 200;
TMOD &= 0xf0;
TMOD |= 0x02; // 0x20,8bit auto reload mode
TR0 = 1;
ET0 = 1;
#else
TL0 = 0;
TMOD &= 0xf0;
TMOD |= 0x02; // 0x20,8bit auto reload mode
TR0 = 1;
// ET0 = 1;
#endif
g_bItem1 = 1;
#elif ((_MCUTYPE_>=_MCU_M8_)&&(_MCUTYPE_<=_MCU_M1281_))
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: FOSC/8 MHz
// Mode: CTC top=OCR1A
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
#define OCR1A_CONST (TMR1_CONST*FOSC/8)
TCCR1A=0x00;
TCCR1B=0x0A;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=HIBYTE(OCR1A_CONST);
OCR1AL=LOBYTE(OCR1A_CONST);
OCR1BH=0x00;
OCR1BL=0x00;
#if ( (_MCUTYPE_==_MCU_M8_) || (_MCUTYPE_==_MCU_M64_) )
TIMSK |= 0x10;
#elif (_MCUTYPE_==_MCU_M1281_)
TIMSK1 |= 0x02;
#endif
#endif
}
#if 0
void Time0InptIsr(void) interrupt 1 using 2
{
static U08 group1Tmr = 0;
if(group1Tmr<Group1PwmHi)
{
if(g_bItem1) LedG1Off;
if(g_bItem2) LedG2Off;
if(g_bItem3) LedG3Off;
if(g_bItem4) LedG4Off;
}
else
{
if(g_bItem1) LedG1On;
if(g_bItem2) LedG2On;
if(g_bItem3) LedG3On;
if(g_bItem4) LedG4On;
}
if( g_bled2Blink )
{
if(group1Tmr < g_LedBlueHi) LedBlueOn;
else LedBlueOff;
if(group1Tmr < g_LedOrangeHi) LedOrangeOn;
else LedOrangeOff;
if(group1Tmr < g_LedWhiteHi) LedWhiteOn;
else LedWhiteOff;
}
++group1Tmr;
}
#endif
U16 aaaaaaaaaa;
bit b5msFlag;
#if (_MCUTYPE_==_MCU_STC89C52_) || (_MCUTYPE_==_MCU_W79E632_)
void Time1InptIsr(void) interrupt 3 using 2
#elif ( (_MCUTYPE_>=_MCU_M8_) || (_MCUTYPE_<=_MCU_M1281_) )
#pragma vector=TIMER1_COMPA_vect
__interrupt void timer1_compa_isr(void)
#endif
{
// ALL_INPT_DISABLE;
TH1 = C_TH1_5MS;
TL1 = C_TL1_5MS;
++Group1PwmHi;
if(!Group1PwmHi)
{
if(g_bItem4) {g_bItem4=0; g_bItem1=1; }
else if(g_bItem3) {g_bItem3=0; g_bItem4=1; }
else if(g_bItem2) {g_bItem2=0; g_bItem3=1; }
else if(g_bItem1) {g_bItem1=0; g_bItem2=1; }
}
if( pStatus )
{
b5msFlag ^=1;
if(b5msFlag)
{
switch(g_LedGroup2Step)
{
case LED_STEP1:
g_LedBlueHi -= 1;
if(g_LedBlueHi<=50)
{
g_LedGroup2Step = LED_STEP2;
}
break;
case LED_STEP2:
g_LedWhiteHi += 1;
if(g_LedBlueHi) --g_LedBlueHi;
if(g_LedWhiteHi >= 250)
{
g_LedGroup2Step = LED_STEP3;
g_LedGroup2Tmr = C_LED_GROUP2_STEP3_DLY;
LedWhiteOn;
LedBlueOff;
LedOrangeOff;
g_bled2Blink = 0;
}
break;
case LED_STEP4:
g_LedWhiteHi -= 1;
if(g_LedWhiteHi <= 50)
{
g_LedGroup2Step = LED_STEP5;
}
break;
case LED_STEP5:
g_LedOrangeHi += 1;
if(g_LedWhiteHi) --g_LedWhiteHi;
if(g_LedOrangeHi >= 250)
{
g_LedGroup2Step = LED_STEP6;
g_LedGroup2Tmr = C_LED_GROUP2_STEP6_DLY;
LedWhiteOff;
LedBlueOff;
LedOrangeOn;
g_bled2Blink = 0;
}
break;
case LED_STEP7:
g_LedOrangeHi -= 1;
if(g_LedOrangeHi <= 50)
{
g_LedGroup2Step = LED_STEP8;
}
break;
case LED_STEP8:
g_LedBlueHi += 1;
if(g_LedOrangeHi) --g_LedOrangeHi;
if(g_LedBlueHi >= 250)
{
g_LedGroup2Step = LED_STEP9;
g_LedGroup2Tmr = C_LED_GROUP2_STEP9_DLY;
LedWhiteOff;
LedBlueOn;
LedOrangeOff;
g_bled2Blink = 0;
}
break;
}
if( (++Tmr1Cnt10ms) >= 10 )
{
Tmr1Cnt10ms = 0;
if(g_LedGroup2Tmr) --g_LedGroup2Tmr;
else
{
if(g_LedGroup2Step == LED_STEP3)
{
g_bled2Blink = 1;
g_LedGroup2Step = LED_STEP4;
}
else if(g_LedGroup2Step == LED_STEP6)
{
g_bled2Blink = 1;
g_LedGroup2Step = LED_STEP7;
}
else if(g_LedGroup2Step == LED_STEP9)
{
g_bled2Blink = 1;
g_LedGroup2Step = LED_STEP1;
}
}
// if(++aaaaaaaaaa >= 6500000/100) while(1);
}
}
}
else
{
LedGroup2Init();
g_bled2Blink = 0;
}
// ALL_INPT_ENABLE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -