void interrupt isr(void) {
asm("clrwdt");
if (TMR1IF) {
TMR1IF = 0;
// TMR1H = 0x3C;
// TMR1L = 0xB0;100ms
TMR1H = 0xFE;
TMR1L = 0x0C;// timer interrupt for 1ms
if(Top_Display>Bottom_Value)
{
if(LED_SS==0)
{
Bottom_Value=(Sec*100)+MSec;
}else
if(LED_MS==0)
{
Bottom_Value=(Min*100)+Sec;
}else
if(LED_HM==0)
{
Bottom_Value=(Hour*100)+Min;
}
}else if(Top_Display==Bottom_Value)
{
}
MSec++;
if(MSec>1000)
{
MSec=0;
Sec++;
if(Sec>=59) {
Sec=0;
Min=Min+1;
if(Min>=59) {
Min=0;
Hour=Hour+1;
if(Hour>99) {
Hour=0;
}
}
}
}
Display();
}
}
void Process_RUN_MODE()
{
//Display_Faults(12,18,27,26,18,11,24,26);
if(EEPROM_Read_Flag==1)
{
READ_EPROM();EEPROM_Read_Flag=0;
}
Top_Display=1234;
LED_MS=0;
Key_CHK_RESET();
if(LED_MS==0)
{
Dissect(Top_Display);
Float_Value=SplitFloat(Top_Display);
InG_value=SplitInt(Top_Display);
Dissect_2(Bottom_Value);
}
}
Void main()
{
while(1)
{
Process_RUN_MODE();
}
}
void Dissect_2(unsigned int Value) // Spliting of process value in digits form
{
unsigned char a,Temp;
for(a = 4;a >= 1 ; a--)
{
Temp = Value%10;
Value = Value/10;
LEDBuffer_1[a-1] = DISPTABLE[Temp];
}
}
void Dissect(unsigned int Value) // Spliting of process value in digits form
{
unsigned char a,Temp;
for(a = 8;a >= 5 ; a--)
{
Temp = Value%10;
Value = Value/10;
LEDBuffer_1[a-1] = DISPTABLE[Temp];
}
}