// ������������������������������������������������������������������������������������������������������������������������ 8-������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������ #define OS_TIMERS8 5 // ������������������������������������������������������������������������������������������������������������������������ 16-������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������ #define OS_TIMERS16 2 // ������������������������������������������������������������������������������������������������������������������������ 24-������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������ #define OS_TIMERS24 0 // ������������������������������������������������������������������������������������������������������������������������ 32-������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������ #define OS_TIMERS32 1
ID
ID
enum OSA_TIMERS_ENUM { // 8-������������������������������������������������������������������������ T8_TIMER0, T8_TIMER1, T8_TIMER2, T8_TIMER3, T8_TIMER4, // 16-������������������������������������������������������������������������ T16_TIMER0, T16_TIMER1, // 24-������������������������������������������������������������������������ // 32-������������������������������������������������������������������������ T32_TIMER0 };
// ���������������������������������������������������������������������������������������������������������������������������������� ������������ OAScfg.h #define OS_ENABLE_TIMER #define OS_TIMERS8 1 enum OS_TIMERS_ENUM { T8_Timer // ������������������������������������������������������������������������ ������������������������������������ ������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������ ������������������������������������������������������������������������������������ ������������������������������������������������������������������������ ���������������������������������������������������������������������� } ---------------------------------------------------------------------- // ������������������������������������������������������������������������������������������������ ���������������������������������������������������������������������������������������������������������� (��������������������������������������������������������������������������������������������������������������������������������������������, ������������������������������������ ������������������������������������������������������������������������������������������������ OS_Timer = 1 ms) OST_MSG msg_cb, msg_cb2; void Task1 (void) { OST_MSG msg; static unsigned long Data; for (;;) { ... OS_Msg_Send(msg_cb, (OST_MSG)&Data); // ������������������������������������������������������������ ������������������������������������������������������������ ������������������������������������������������������������������������ Data OS_Msg_Wait(msg_cb2, msg); // ������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������ ���������������������������������������������������������������������� ... } } void Task_SearchData (void) { OST_SMSG msg; static unsigned long Data; static unsigned long Addr; for (;;) { OS_Msg_Wait(msg_cb, msg); Data = (unsigned long)(*msg); OS_RunTimer(T8_Timer, 10); // ���������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������ ������������������������ 10 ������������������������ for (Addr = 0; Addr < MAX_ADDRESS; Addr++) { if (MemoryRead(Addr) == Data) { // ������������������������������������������������ ������������������������������������������������������������ ������������������������������������������������������������������������ ������������������������������������������������������������������������, OS_Msg_Send(msg_cb2, (OST_MSG)&Addr); // ���������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������ ������������ ������������������������������������������������������������ ������������������������ ������������������������������������������������������������ break; } if (OS_Oldtimer_Check(T8_Timer)) { // ������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������������������������������������������? OS_Yield(); // ������������������������������������������������������������������������������������������������ ���������������������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������� OS_RunTimer(T8_Timer, 10); // ���������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������ ������������������������������������������������������������ } } if (Addr == MAX_ADDRESS) { // ������������������������������������������������ ������������������������ ������������������������������������������������������������ ������������������������������������������������������������������������ Addr = 0xFFFFFFFF; OS_Msg_Send(msg_cb2, (OST_MSG)&Addr); // ���������������������������������������������������������������������������������������������������������������������� -1 } } }
msg_cbTask_Search
OS_Timer | ||||
---|---|---|---|---|
1 ms | ||||
10 ms | ||||
18.2 ms | ||||
256 us | ||||
512 us | ||||
1024 us | ||||
2048 us | ||||
4096 us | ||||
8192 us |
OS_Oldtimer_Run8 (timer8_id, time) | appendix | |
OS_Oldtimer_Run16 (timer16_id, time) | appendix | |
OS_Oldtimer_Run24 (timer24_id, time) | appendix | |
OS_Oldtimer_Run32 (timer32_id, time) | appendix | |
OS_Oldtimer_Stop (timer_id) | appendix | |
bool OS_Oldtimer_Check (timer_id) | appendix | |
OS_Oldtimer_Wait (timer_id) | appendixappendixappendix |