📄 interrupt.c
字号:
/*********************************************************
Project: ST FST(TDA7540)
File name: interrupt.c
Description:
Write/Modify: Perry
Time: 2005-11-22- 10:46:39
*********************************************************/
#include "public.h"
unsigned char T10ms;
unsigned char T100ms;
unsigned char T1s;
#pragma TRAP_PROC SAVE_REGS
void INT_PortB0123 (void)
{
}
#pragma TRAP_PROC SAVE_REGS
void INT_Timer1 (void)
{
UCharInt temp;
if (TAOCF1)
{
//fOSC=8M
//fOSC2=8M/2 <PLL OPTION BIT>
//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
//fCLK=fCPU/8 <CR2:cc1,cc0>
// 1CLK=1/(8M/2/8)
// 1s=500000 CLK
// 1ms=500000/1000=500 CLK=0x01F4 CLK
temp.byte[1]=TAOC1LR;
temp.byte[0]=TAOC1HR;
#ifdef MCU8_664M
temp.Dbyte+=1083; // 2ms
#else
temp.Dbyte+=1000; // 2ms
#endif
TAOC1HR=temp.byte[0];
TAOC1LR=temp.byte[1];
// 2ms below
// 10ms below
if(T10ms>0)
{
T10ms--;
return;
}
else
{
T10ms=4;
}
PowerTimer10ms();
KeyTimer100ms();
AudioTimerINT10ms();
RDSDataTimer10ms();
Radio10msTimer();
AlignTimer10ms();
// 100ms below
if(T100ms>0)
{
T100ms--;
return;
}
else
{
T100ms=9;
}
AudioTimerINT100ms();
RDSTimer100ms();
RDSDataTimer100ms();
Radio100msTimer();
DisplayTimer100ms();
AlignTimer100ms();
#ifdef MCU8_664M
ClockRun();
#endif
// 1s below
if(T1s>0)
{
T1s--;
return;
}
else
{
T1s=9;
}
RDSDataTimer1s();
PowerTimer1s();
}
if (TAOCF2)
{
//fOSC=8M
//fOSC2=8M/2 <PLL OPTION BIT>
//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
//fCLK=fCPU/8 <CR2:cc1,cc0>
// 1CLK=1/(8M/2/8)
// 1s=500000 CLK
// 1ms=500000/1000=500 CLK=0x01F4 CLK
temp.byte[1]=TAOC2LR;
temp.byte[0]=TAOC2HR;
#ifdef MCU8_664M
temp.Dbyte+=357; // 660us
#else
temp.Dbyte+=330; // 660us
#endif
TAOC2HR=temp.byte[0];
TAOC2LR=temp.byte[1];
//Ir_Timer();
}
}
#pragma TRAP_PROC SAVE_REGS
void INT_Timer2 (void)
{
UCharInt temp;
if (TBOCF1)
{
//fOSC=8M
//fOSC2=8M/2 <PLL OPTION BIT>
//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
//fCLK=fCPU/8 <CR2:cc1,cc0>
// 1CLK=1/(8M/2/8)
// 1s=500000 CLK
// 1ms=500000/1000=500 CLK=0x01F4 CLK
/*temp.byte[1]=TIM2_OC1L;
temp.byte[0]=TIM2_OC1H;
temp.Dbyte+=CDCRELOADTIME;
TIM2_OC1H=temp.byte[0];
TIM2_OC1L=temp.byte[1];*/
//TIM2_OC1L--;
/*temp.byte[1]=TIM2_OC1L;
temp.byte[0]=TIM2_OC1H;
temp.Dbyte--;
TIM2_OC1H=temp.byte[0];
TIM2_OC1L=temp.byte[1];*/
//fOSC=8.664M
//fOSC2=8.664M/2 <PLL OPTION BIT>
//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
//fCLK=fCPU/8 <CR2:cc1,cc0>
// 1CLK=1/(8.664M/2/8)
// 1s=541500 CLK
// 1ms=541500/1000=541.5 CLK
// 2ms=1083 CLK
// 50ms=27075 CLK
temp.byte[1]=TBOC1LR;
temp.byte[0]=TBOC1HR;
temp.Dbyte+=27075;
TBOC1HR=temp.byte[0];
TBOC1LR=temp.byte[1];
#ifdef MCU8_664M
if(System.AccMode==ACCMODE_ACCOFF)
{
TBOC2HR=TBCHR;
TBOC2LR=TBCLR;
}
ClockRun();
#endif
}
if (TBOCF2)
{
//fOSC=8M
//fOSC2=8M/2 <PLL OPTION BIT>
//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
//fCLK=fCPU/8 <CR2:cc1,cc0>
// 1CLK=1/(8M/2/8)
// 1s=500000 CLK
// 1ms=500000/1000=500 CLK=0x01F4 CLK
temp.byte[1]=TBOC2LR;//TIM2_CNTL;
temp.byte[0]=TBOC2HR;//TIM2_CNT;
temp.Dbyte+=300;
TBOC2HR=temp.byte[0];
TBOC2LR=temp.byte[1];
NOP;
NOP;
}
}
#pragma TRAP_PROC SAVE_REGS
void INT_PortB4567 (void)
{
}
#pragma TRAP_PROC SAVE_REGS
void INT_RTC (void)
{
if(OIF)
{
// 50ms
#ifndef MCU8_664M
ClockRun();
#endif
}
}
#pragma TRAP_PROC SAVE_REGS
void INT_PortA0123 (void)
{
// RDS
RDSInt();
}
#pragma TRAP_PROC SAVE_REGS
void INT_PortF012(void)
{
// REMOTE
//InfraRed();
}
#pragma TRAP_PROC SAVE_REGS
void INT_I2C(void)
{
}
#pragma TRAP_PROC SAVE_REGS
void NoFunction(void)
{
}
/*********************************************************
File End
*********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -