This is my source code, very simple.
#include <rtx51.h> #include <stdio.h> #include <math.h> #include <REGX51.H> void task1 (void) _task_ 1 _priority_ 1 { P2_1 = 0; os_wait(K_TMO, 100, 0); } void task2 (void) _task_ 2 { P2_1 = 1; os_wait(K_TMO, 100, 0); } void start (void) _task_ 0 { os_set_slice(10000); os_create_task (1); os_create_task (2); os_delete_task (os_running_task_id ()); P1=0; } void main (void) { P2_3=0; os_start_system (0); }
But when i use proteus to simulator this program, I see that : P2_3 is low, that ok. But P1 is always high. I think that the program doesn't run the funtion :void start (void) _task_ 0 . But I don't know why. Can you help me. Thank you very much.
What is the result of the following:
#include <rtx51.h> #include <stdio.h> #include <math.h> #include <REGX51.H> void task1(void) _task_ 1 _priority_ 1 { while (1) { P2_1 = 0; os_wait(K_TMO,100,0); } } void task2(void) _task_ 2 { while (1) { P2_1 = 1; os_wait(K_TMO,100,0); } } void start(void) _task_ 0 { os_set_slice(10000); os_create_task(1); os_create_task(2); P1 = 0; os_delete_task(os_running_task_id()); } void main(void) { P2_3 = 0; os_start_system(0); }