====== OSA : РРРРРРРРРРР РРРРРРР РРРРРРР РРРР ======
===== РРРРРРРР =====
(РРРРРРР Р РРРРРР 81010, РРРРРРРРРРР РРРРРРР РРРРРРРРР. РРРРРРРРРРР РРРРРРР РРРРРРР РРРР РРРРР РРРРРРРР РРРРРРРР, РР, РРРРР РРРРРРРРРР РР РРРРРРРРРР, РР РРРРРРРРРРРР РР РРРРРРРРРРРРР. РРРРР РРРРРРРРРРР РРРРРРР РРРРРРР Р РРРРРРР [[en:osa:ref:services:timers#РРРРРРРРРРР РРРРРРР|РРРРРРРРРРР РРРРРРР]])
РРР РРРРРРР РРРРРРРРРРРРР РРРРРРРРРРРР РРРРР, РРРРР РРР РРРРРРРРР РРРРРРРР Р РРРРРРРР, РРРР РРРР РРРРРРРРРРРРР РРРРРРРР RAM Р ROM. Р РРРРРРРРР РРРРРРР РРРРРРРРРРРРР РРРРРРРРРРРР РРРРРРРРРРРР РРРРРРР.
===== РРРРРРРР =====
РРРР РРРРРР РРРР РРРРРРРРРРР РРРРРРРР (РРР РРРРРРРРРР РРРРРРРРРРРР): 8-, 16- 24- Р 32-РРРРРРРРР. 8-РРРРРРРРР РРРРРРРР РР РРРРРР РРРРР РР РРРРРР, 16- Р 24-Р РРРРРРРРР Р РР 2, 32-Р Р 4 РРРРР. РРР РРРРРРР РРРРРРР РРРРРРРР РРРРРР РР РРРРРРРРРРРРР РРРРРРР РРРРРР РРРРР РРРРРРР. РРРРРРРРРРРР Р РРРРРРРРР РРРРР РРРРРРРР РРРРРРРРРРР РРРРРРР РРРР 4-Р РРРРР.
Р РРРРРР РР РРРРРРРРР RAM Р ROM РРРРРРРРРРР РРРРРР Р РРРРРРРРР РР РРРРР РРРРРР. РРРРРРРРРР РРРРРРРРРРРР РРРРРРРР Р РР РРР РРРРРР РРРР РРРРРРРРРР РР РРРРР РРРРРРРРРР. РРРРРРРРРР РРРРРРРР РРРРРРРР Р РРРРР ##[[en:osa:ref:appendix:configuration|OSAcfg.h]]##:
// РРРРРРРРРР 8-РРРРРРРРР РРРРРРРР
#define OS_TIMERS8 5
// РРРРРРРРРР 16-РРРРРРРРР РРРРРРРР
#define OS_TIMERS16 2
// РРРРРРРРРР 24-РРРРРРРРР РРРРРРРР
#define OS_TIMERS24 0
// РРРРРРРРРР 32-РРРРРРРРР РРРРРРРР
#define OS_TIMERS32 1
РРР РРРР Р РРРРРР РРРРРРРРР РРРРРРР РРРРРРРРРРРРРРР РРРРР, РРР Р РРРРР РРРРРРРРР РРРРРРР. РРРРР РРРР, РРРР Р РРРРРРРРР РРРР РРРР РР РРРР РРРРРРРРРРР РРРРРР, РР РРРРРРРРР РРРРРРР РРРРРРРРРР РРР РРРРРРРРР РРРРРРРРРРРР. РРРРРРРР, Р РРРРРРРРР РРРРРРРРРРРР 5 8-РРРРРРРРР РРРРРРРР, 2 16-РРРРРРРРР Р 1 32-РРРРРРРРР. РРРРР 8, РРРРРРРРРРРРР, РРРРРРРРР РРРРРРРР РРРРРРРРРР, РРРРРР РРР РРРРРРР РРРРР РРРРРРРР РР РРРР РРРРРР.
РРРРРРРРР Р РРРРРРРРРРР РРРРРРРР РРРРРРРРРРРР РРРРР РР **ID** Р РРРРРРРРРР РРРРР, РРРРРР РРРРРРР РРРРРР РРРРРРРРРРР 8-РРРРРРРРР РРРРРРРР, Р РРРРРРР Р 32-РРРРРРРРР. РРР РРРРРР РРРРРРРРРРРРРРР. РРР РРРРРР РРРРРРР РРРРРРРРРР 8 РРРРРРРР:
0..4 Р 8-РРРРРРРРР РРРРРРР
5..6 Р 16-РРРРРРРРР
7 Р 32-РРРРРРРРР
РРРРРР РРР **ID** РРРРРРРР РРРРРРРРРР РРРРР enum:
enum OSA_TIMERS_ENUM
{
// 8-РРРРРР
T8_TIMER0,
T8_TIMER1,
T8_TIMER2,
T8_TIMER3,
T8_TIMER4,
// 16-РРРРРР
T16_TIMER0,
T16_TIMER1,
// 24-РРРРРР
// 32-РРРРРР
T32_TIMER0
};
РРРРР РРРРРРРРРР РРРРРРРРР Р РРРРРРРР Р РРРР РРРРРРРР, РРР РРРРРРРР РР РРРРРРРР РРРР РРРРРРРР Р РРРРР Р РРР РР **ID**. РРР РРРРРРР РРР РРРРРРРР РРРРРР РРРРР РРРРРРРРР, РР РРРРРРРРРРР РРРРРРР ##[[en:osa:ref:allservices:OS_RunTimerX|OS_RunTimerX]]##, РРРРРРР РРРРРРРРР РРРРРР Р РРРРРР, - РРРР РРРРРР РРРР РРР РРРРРРР РРРР РРРРРРР.
РРРРР РРРРРРРРРР ##[[en:osa:ref:allservices:OS_Init|OS_Init]]##() РРР РРРРРРРРРРР РРРРРРР РРРРРРРРРРР.
РРРР РРРРРРРР РРРРРР РРРРРРРРРРРРР РРРРРРР РРР РРРРРРРРР РРРРРР РРРРРРР РРРРРР РРРРРР РРРРРРРРРР РР РРРРР РРРРРР (Р.Р. РРРРРР РРРРРРР, РР РРРРР РРРРР РРРРРРРРРР).
// РРРРРРРРРРР Р 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_cb//) РРРРРР //Task_Search// РРРРР РРРРРРРРР РРРРРРРРРРР РРРРР РРРРРРРРРР, РРРРРРРРР РРРРРРРРРР РРРРРР РРРРРРР РРР Р 10РР.
~~UP~~
===== РРРРРРРРРР РРР РРРРРРРРРРР РРРРРРРР =====
=== РРРРРРРРРР РРРРРРРРРРР РРРРРРРР Р РРРРРР ===
РРРРРРРРРР РРРРРРРРРРР РРРРРРРР РРРРРРРРРРР РРРРРРРРР Р РРРРР ##[[en:osa:ref:appendix:configuration|OSAcfg.h.]]## РРР РРРРР РРРР РРРРРРРРР ##[[en:osa:ref:appendix:configuration|OS_BANK_TIMEOUTS]]## Р ##[[en:osa:ref:appendix:configuration|OS_BANK_TIMERSx]]## (x = 8, 16, 24, 32). РРР РРРРРРРРР РРРРРРР Р РРРРР [[en:osa:ref:appendix:configuration#РРРРРРРРРР РРРРРР|РРРРРРРРРРРР]].
=== РРРРРРРРРР Р 24-Р РРРРРРРРР РРРРРРРР ===
РРР РРРРРРР РРРРРРРРРР 16-РРРРРРРРР, РР РРРРРРРРРРРРР РРР РРРР РРР Р 256 РРРРР. РРР РР РРРРРРР РРР РРРРРРРРРРРР РРРРРР РРРРРРРР РР-РР РРРРР РРРРРРРРРРРР, РР РРРРРРРРР РРРРРРРРРРР РРРРРРРР РРРРРРР РРРРРРРР, РР РРРРРРРР Р РРРРРРРРРРРРР 32-РРРРРРРРРР. РРРРРРРРРР РРРРРРРР RAM РР 2 РРРРР Р РРРРРР РРРРРР РРРРРРР Р РРРРРРРРР РРРРРРРР ROM РР РРРР РРРРРР Р 2-Р, Р РР 4-Р РРРРРРРРР РРРРРРРРРРР.
=== РРРРРРРРРРРР РРРРРРРР РРРРРРРРРРР РРРРРРРР ===
РРРРРРРРРРР РРРРРРРРРРРР РРРРРРР РРРРРРРРРР РР РРРРР РРРРРРРРРРРРРР Р РРРРРР РРРР, РРРРР РРРРРРРРР РРРРРРРРР РРРРРРРРРРРРРР РРРРРРРР. РРРРР РРР РРРРРРРР РРРРРРР РРРРРРРРРРР РРРРРРРРРР РРРРРРРР (РРРРРРРРР Р РРРРРРР РРРРРРР) РРР РРРРРРРР РРРРР РРРРРРРРРРРР РРРРРРРР РРРРРРРРРР РРРР:
^РРРРРРРР РРРРРР ##[[en:osa:ref:allservices:OS_Timer|OS_Timer]]##^8-РРРРРРРРР^16-РРРРРРРРР^24-РРРРРРРРР^32-РРРРРРРРР^
| 1 ms | 256 РР | 65.5 РРР | 4 Р 40 РРР | 49 РРРРР |
| 10 ms | 2.5 РРР | 10 РРР | 46 Р | 497 РРРРР |
| 18.2 ms | 4.6 РРР | 19 РРР | 84 Р | 900 РРРРР |
| 256 us | 65 РР | 16 РРР | 1 Р 10 РРР | 12 РРРРР |
| 512 us | 130 РР | 32.5 РРР | 2 Р 20 РРР | 24 РРРРР |
| 1024 us | 260 РР | 67 РРР | 4 Р 45 РРР | 50 РРРРР |
| 2048 us | 528 РР | 2 РРР 15 РРР | 9 Р 30 РРР | 100 РРРРР |
| 4096 us | 1 Р | 4 РРР 30 РРР | 19 Р | 200 РРРРР |
| 8192 us | 2 Р | 9 РРР | 38 Р | 400 РРРРР |
РРР РРРР РРРРРРРР, РРРРР 24-РРРРРРРРР, РРРРРРРРРРРР = 1 РРРРРРРРРР РРРР. РРР 24-РРРРРРРРР РРРРРРРРРРРР = 256 РРРРРРРРР РРРРР = РРРРРРР РРРРРРР 8-РРРРРРРРРР РРРРРРР.
===== РРРРРРР РРРРРРРРРР РРРРРРРРРРРР РРРРРРРРР. =====
^ РРРРРР ^ РРРРРРРР ^ РРРРРРРР ^
|**РРРРРР**|||
|[[en:osa:ref:allservices:OS_Oldtimer_Run8|OS_Oldtimer_Run8]] (//timer8_id, time//) |РРРРРРРРР 8-РРРРРРРРР РРРРРР РРР РРРРРРР| {{osa:ref:attr_call_to.png|РРРРРР РРРРРРРРРР РРРРРРР}} |
|[[en:osa:ref:allservices:OS_Oldtimer_Run16|OS_Oldtimer_Run16]] (//timer16_id, time//) |РРРРРРРРР 16-РРРРРРРРР РРРРРР РРР РРРРРРР| {{osa:ref:attr_call_to.png|РРРРРР РРРРРРРРРР РРРРРРР}} |
|[[en:osa:ref:allservices:OS_Oldtimer_Run24|OS_Oldtimer_Run24]] (//timer24_id, time//) |РРРРРРРРР 24-РРРРРРРРР РРРРРР РРР РРРРРРР| {{osa:ref:attr_call_to.png|РРРРРР РРРРРРРРРР РРРРРРР}} |
|[[en:osa:ref:allservices:OS_Oldtimer_Run32|OS_Oldtimer_Run32]] (//timer32_id, time//) |РРРРРРРРР 32-РРРРРРРРР РРРРРР РРР РРРРРРР | {{osa:ref:attr_call_to.png|РРРРРР РРРРРРРРРР РРРРРРР}} |
|**РРРРРРРРР**|||
|[[en:osa:ref:allservices:OS_Oldtimer_Stop|OS_Oldtimer_Stop]] (//timer_id//) |РРРРРРРРРРРРР РРРРРР (РРР РРРР РРРРРРРРРРРРРРР РРРР Timeout РРР РРРРР РРРРРРР) | {{osa:ref:attr_call_to.png|РРРРРР РРРРРРРРРР РРРРРРР}} |
|**РРРРРРРР**|||
|//bool// [[en:osa:ref:allservices:OS_Oldtimer_Check|OS_Oldtimer_Check]] (//timer_id//) |РРРРРРРРР, РРРРРРРР РР РРРРРР РРРР. | {{osa:ref:attr_call_to.png|РРРРРР РРРРРРРРРР РРРРРРР}} |
|**РРРРРРРР**|||
|[[en:osa:ref:allservices:OS_Oldtimer_Wait|OS_Oldtimer_Wait]] (//timer_id//) |РРРРРРР РРРРРРРРРР РРРРР РРРРРРР | {{osa:ref:attr_call_task.png|РРРРРРРР РРРРР РРРРРР Р РРРРРРРРР РРРРРР}}{{osa:ref:attr_call_ct_sw.png|РРРРРРРРРРР РРРРРРРР}}{{osa:ref:attr_call_to.png|РРРРРР РРРРРРРРРР РРРРРРР}} |
~~UP~~