Hello, I created three tasks. Each task increments a counter and send it to LCD by using a semaphore. I used timer 0 for system tiks. I used timer 2 to interrupt every 1/2 second and increase the counter. Also I used ext INT1 to do the same. Now if I eliminat os_start() from my code timer2 and ext INT1 works fine. I made the interrupt to send count to LCD. If I include os_start(), neither Timer2 or ext INT1 works. I made the interrupt to increment a global counter and let the tasks to send it to the LCD. However, I duplicated timer 2, ext INT1 initialization and IE before for(;;) loop in each task and the timer2 and ext INT1 still do not work but the tasks work. Thanks
Try debugging one aspect of the program at a time. Eliminate the ISRs. Instead create a 4th task that increment all counters. Since we are trying to emmulate the ISRs, use no semaphores on these counters. Does this work?