📄 isr_tmr.c
字号:
//-----------------------------------------------
//function : ISR_TMR
//in : NULL
//out : NULL
//description: TMR interrupt(8ms)
//-----------------------------------------------
void ISR_TMR()
{
//------------------
//TMR count part
//------------------
M_DATA_SPEED++;
M_TMR_MS++;
if(M_TMR_MS >= 125)
{
// 125 * 8ms = 1 sec
M_TMR_MS = 0;
M_TMR_SEC++;
}
//Function choice
switch(M_Function_Step)
{
//check which step run
//===============================
//character run part
case 0:
{
//move form R->L
if(M_DATA_SPEED >= C_DATA_SPEED)
{
//move 1 station
M_DATA_SPEED = 0; //speed count clear
M_DATA_FrePoint++; //data display next station
#asm
CALL _SBR_FUNCTION_STEP0
#endasm
}
break;
}
case 1:
{
//delay
if(M_TMR_SEC > 1)
{
/*
M_Function_Step++; //next function step
//insert initial step3 code at here
//command set
P_CS1_1632 = P_CS2_1632 = P_CS3_1632 = C_1632_CSOn; //1632 CS1 & CS2 & CS3 enable
#asm
CALL _SBR_PRECOMMAND_1632 //send "100" for command
MOV A,09H
MOV SBR_COMMAND_16320,A
CALL _SBR_COMMAND_1632 //BLINK ON
#endasm
P_CS1_1632 = P_CS2_1632 = P_CS3_1632 = C_1632_CSOff; //1632 CS1 & CS2 & CS3 disable
M_TMR_SEC = 0;
*/
#asm
CALL _SBR_FUNCTION_STEP1
#endasm
}
break;
}
case 2:
{
//data blink
/*
M_Function_Step++; //next function step
//insert initial step3 code at here
//command set
P_CS1_1632 = P_CS2_1632 = P_CS3_1632 = C_1632_CSOn; //1632 CS1 & CS2 & CS3 enable
#asm
CALL _SBR_PRECOMMAND_1632 //send "100" for command
MOV A,08H
MOV SBR_COMMAND_16320,A //var set!!!
CALL _SBR_COMMAND_1632 //BLINK OFF
#endasm
P_CS1_1632 = P_CS2_1632 = P_CS3_1632 = C_1632_CSOff; //1632 CS1 & CS2 & CS3 disable
M_DATA_SPEED = 0;
*/
#asm
CALL _SBR_FUNCTION_STEP2
#endasm
break;
}
case 3:
{
//delay
if(M_TMR_SEC > C_LED_StaticTime)
{
M_Function_Step++; //next function step
//insert initial step3 code at here
M_DATA_SPEED = 0;
M_DATA_FrePoint = C_DATA_MAX_Length;
}
break;
}
case 4:
{
//move form R->L overflow
if(M_DATA_SPEED >= C_DATA_SPEED)
{
//move 1 station
M_DATA_SPEED = 0; //speed count clear
M_DATA_FrePoint--; //data display next station
#asm
CALL _SBR_FUNCTION_STEP4
#endasm
}
break;
}
case 5:
{
//delay
if(M_TMR_SEC > C_LED_AllOffTime)
{
//M_Function_Step = 0; //end , use this code
M_Function_Step++; //next function,use this code
M_DATA_SPEED = 0;
M_UDMask_Cnt = 0;
}
break;
}
//end of character run part
//===============================
//===============================
//character display up + down
case 6:
{
//display
if(M_DATA_SPEED >= C_DATA_SPEED)
{
//move 1 station
M_DATA_SPEED = 0; //speed count clear
#asm
CALL _SBR_FUNCTION_STEP6
#endasm
}
break;
}
case 7:
{
//delay
if(M_TMR_SEC > C_LED_StaticTime)
{
M_Function_Step++; //next function step
//insert initial step3 code at here
M_DATA_SPEED = 0;
}
break;
}
case 8:
{
//display
if(M_DATA_SPEED >= C_DATA_SPEED)
{
//move 1 station
M_DATA_SPEED = 0; //speed count clear
#asm
CALL _SBR_FUNCTION_STEP8
#endasm
}
break;
}
case 9:
{
//delay
if(M_TMR_SEC > C_LED_AllOffTime)
{
M_Function_Step++; //next function,use this code
M_DATA_SPEED = 0;
M_DATA_TableCnt = 0;
}
break;
}
//character display up + down end
//===============================
//===============================
//character display L + R
case 10:
{
//display
if(M_DATA_SPEED >= C_DATA_SPEED)
{
//move 1 station
M_DATA_SPEED = 0; //speed count clear
#asm
CALL _SBR_FUNCTION_STEP10
#endasm
}
break;
}
case 11:
{
//delay
if(M_TMR_SEC > C_LED_StaticTime)
{
M_Function_Step++; //next function step
//insert initial step code at here
M_DATA_SPEED = 0;
}
break;
}
case 12:
{
//display
if(M_DATA_SPEED >= C_DATA_SPEED)
{
//move 1 station
M_DATA_SPEED = 0; //speed count clear
#asm
CALL _SBR_FUNCTION_STEP12
#endasm
}
break;
}
case 13:
{
//delay
if(M_TMR_SEC > C_LED_AllOffTime)
{
M_Function_Step++; //next function,use this code
}
break;
}
//character display L + R end
//===============================
//===============================
//display HOLTEK
case 14:
{
//CS1 & CS3 all on
#asm
CALL _SBR_FUNCTION_STEP14
#endasm
break;
}
case 15:
{
//delay
if(M_TMR_SEC > C_LED_AllOffTime)
{
M_Function_Step++; //next function,use this code
}
break;
}
case 16:
{
//display HOLTEK
#asm
CALL _SBR_FUNCTION_STEP16
#endasm
break;
}
case 17:
{
//delay
if(M_TMR_SEC > C_LED_StaticTime)
{
M_Function_Step++; //next function step
//insert initial step code at here
}
break;
}
case 18:
{
//clear all LED RAM
#asm
CALL _SBR_FUNCTION_STEP18
#endasm
break;
}
case 19:
{
//delay
if(M_TMR_SEC > C_LED_AllOffTime)
{
M_Function_Step = 0; //end function,use this code
M_DATA_SPEED = 0; //speed count clear
M_DATA_FrePoint = 0;
}
break;
}
//HOLTEK display end
//===============================
default : break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -