Hi, Please, any one can help me to explain the following function: Q1) Function X_Init Q2) Function X Q3) Function sEOS_ISR() Q4) Function sEOS_Go_To_Sleep Code: #include <reg52.h> #define OSC_FREQ (12000000UL) #define OSC_PER_INST (12) void sEOS_Init_Timer2(const unsigned char); void sEOS_Go_To_Sleep(void); void X_Init(void); void X(void); void X_Init(void); #define INTERRUPT_TIMER_2_Overflow 5 void main(void) { X_Init(); // prepare for dummy task sEOS_Init_Timer2(60); // set up simple EOS (60ms tick interval) while(1) { sEOS_Go_To_Sleep(); } } void X_Init(void) { // Dummy task init function // Dummy task init... } void X(void) { // Dummy task called from sEOS ISR // Dummy task.... } void sEOS_ISR() interrupt INTERRUPT_TIMER_2_Overflow { TR2 = 0; X(); } void sEOS_Init_Timer2(const unsigned char TICK_MS) { unsigned long Inc; unsigned int Reload_16; unsigned char Reload_08H, Reload_08L; T2CON = 0x04; Inc = (TICK_MS * (OSC_FREQ/1000)) / OSC_PER_INST; // Inc = 60,000 = 0xEA60 Reload_16 = (65536UL - Inc); // Reload_16 = 5536 =0x15A0 Reload_08H = (Reload_16 / 256); Reload_08L = (Reload_16 % 256); TH2 = Reload_08H; // 0x15 RCAP2H = Reload_08H; TL2 = Reload_08L; // 0xA0 RCAP2L = Reload_08L; ET2 = 1; TR2 = 1; EA = 1; } void sEOS_Go_To_Sleep(void) { PCON |= 0x01; // enter idle mode (generic 8051 version) } Thank You
If you say the the function 1) and 2) is doing nothing, so why when i cancer it 2 the performance analyzer will already show diffrent result?? The problem is that you have not given us enough information to help you. In fact, most of the information we need is completely hidden or is aparently EMPTY. What you ask is something like this: "Please help me with my car. It is broken. My car is yellow with wheels and windows and a key that does something." Jon