разбираемся с таймером

This commit is contained in:
dimoniche 2019-06-04 01:04:28 +03:00
parent 08f1927b7a
commit ea558ae8c7
6 changed files with 123 additions and 73 deletions

View File

@ -149,11 +149,13 @@ CPU_INT08U const CashPulseLenName[] = "
void OnChangeCashPulseLen() void OnChangeCashPulseLen()
{ {
CPU_INT32U pulse, pause; CPU_INT32U pulse, pause;
GetData(&CashPulseLenDesc, &pulse, 0, DATA_FLAG_SYSTEM_INDEX); for(int post = 0; post < COUNT_POST; post++)
GetData(&CashPauseLenDesc, &pause, 0, DATA_FLAG_SYSTEM_INDEX); {
SetCashPulseParam(pulse, pause); GetData(&CashPulseLenDesc, &pulse, post, DATA_FLAG_DIRECT_INDEX);
GetData(&CashPauseLenDesc, &pause, post, DATA_FLAG_DIRECT_INDEX);
SetCashPulseParam(pulse, pause, post);
}
} }
TDataDescStruct const CashPulseLenDesc = { TDataDescStruct const CashPulseLenDesc = {
DATA_DESC_EDIT, // тип дескриптора DATA_DESC_EDIT, // тип дескриптора
@ -641,7 +643,17 @@ TDataDescStruct const EnableSignalDesc = {
Длительность импульса сигнала печати Длительность импульса сигнала печати
*************************************/ *************************************/
TRangeValueULONG const SignalPulseRange = {1, 60}; TRangeValueULONG const SignalPulseRange = {1, 60};
CPU_INT08U const SignalPulseName[] = "Äëèò.ñåê."; CPU_INT08U const SignalPulseName[] = "Äëèíà.èìï.,ñåê.";
void OnChangeSinalPulseLen()
{
CPU_INT32U pulse;
for(int post = 0; post < COUNT_POST; post++)
{
GetData(&SignalPulseDesc, &pulse, post, DATA_FLAG_DIRECT_INDEX);
SetSignalPulseParam(pulse, post);
}
}
TDataDescStruct const SignalPulseDesc = { TDataDescStruct const SignalPulseDesc = {
DATA_DESC_EDIT, // тип дескриптора DATA_DESC_EDIT, // тип дескриптора
@ -652,7 +664,7 @@ TDataDescStruct const SignalPulseDesc = {
&SignalIndexDesc, // указатель на десриптор индекса массива &SignalIndexDesc, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, signal_pulse_len), // указатель на переменную или адрес FRAM (void*)offsetof(TFramMap, signal_pulse_len), // указатель на переменную или адрес FRAM
(void*)&SignalPulseRange, // указатель на границы параметра (void*)&SignalPulseRange, // указатель на границы параметра
NULL, // ôóíêöèÿ ïî èçìåíåíèþ OnChangeSinalPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // смещение между элементами в массиве sizeof(CPU_INT32U), // смещение между элементами в массиве
SignalPulseName, // указатель на строку названия параметра SignalPulseName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк) DATA_NO_INDEX, // признак индексного параметра (список строк)

View File

@ -222,6 +222,7 @@ extern void OnChangeServiceName(void);
extern TDataDescStruct const CashPulseLenDesc; extern TDataDescStruct const CashPulseLenDesc;
extern TDataDescStruct const CashPauseLenDesc; extern TDataDescStruct const CashPauseLenDesc;
extern void OnChangeCashPulseLen(); extern void OnChangeCashPulseLen();
extern void OnChangeSinalPulseLen();
extern TDataDescStruct const PrintModeDesc; extern TDataDescStruct const PrintModeDesc;
extern TDataDescStruct const PrintTimeoutAfterDesc; extern TDataDescStruct const PrintTimeoutAfterDesc;

View File

@ -14,47 +14,65 @@ void InitImpInput(void);
CPU_INT32U CoinImpCounter[COUNT_POST + COUNT_VACUUM]; CPU_INT32U CoinImpCounter[COUNT_POST + COUNT_VACUUM];
CPU_INT32U CashImpCounter[COUNT_POST + COUNT_VACUUM]; CPU_INT32U CashImpCounter[COUNT_POST + COUNT_VACUUM];
static CPU_INT32U cash_pulse = 5000; static CPU_INT32U cash_pulse[COUNT_POST + COUNT_VACUUM];
static CPU_INT32U cash_pause = 2000; static CPU_INT32U cash_pause[COUNT_POST + COUNT_VACUUM];
static char pend_cash_counter[COUNT_POST + COUNT_VACUUM]; static char pend_cash_counter[COUNT_POST + COUNT_VACUUM];
static CPU_INT32U pend_cash_timestamp[COUNT_POST + COUNT_VACUUM]; static CPU_INT32U pend_cash_timestamp[COUNT_POST + COUNT_VACUUM];
void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause) static CPU_INT32U signal_pulse[COUNT_POST + COUNT_VACUUM];
static char pend_signal_counter[COUNT_POST + COUNT_VACUUM];
void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post)
{ {
#if OS_CRITICAL_METHOD == 3 #if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr = 0; OS_CPU_SR cpu_sr = 0;
#endif #endif
OS_ENTER_CRITICAL(); OS_ENTER_CRITICAL();
cash_pulse = pulse * 100; cash_pulse[post] = pulse * 100;
cash_pause = pause; cash_pause[post] = pause;
OS_EXIT_CRITICAL();
}
void SetSignalPulseParam(CPU_INT32U pulse, CPU_INT32U post)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr = 0;
#endif
OS_ENTER_CRITICAL();
signal_pulse[post] = pulse * 2000;
OS_EXIT_CRITICAL(); OS_EXIT_CRITICAL();
} }
void CoinTask(void *p_arg) void CoinTask(void *p_arg)
{ {
CPU_INT32U enable_coin; CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM];
CPU_INT32U cash_mode; CPU_INT32U cash_enable[COUNT_POST + COUNT_VACUUM];
CPU_INT32U cash_enable; CPU_INT32U enable_signal[COUNT_POST + COUNT_VACUUM];
CPU_INT32U last_cash_count[COUNT_POST + COUNT_VACUUM]; CPU_INT32U last_cash_count[COUNT_POST + COUNT_VACUUM];
CPU_INT32U last_cash_time[COUNT_POST + COUNT_VACUUM]; CPU_INT32U last_cash_time[COUNT_POST + COUNT_VACUUM];
CPU_INT32U last_settings_time = 0; CPU_INT32U last_settings_time = 0;
while(1) while(1)
{
for(int i = 0; i < COUNT_POST + COUNT_VACUUM; i++)
{ {
if (OSTimeGet() - last_settings_time > 1000) if (OSTimeGet() - last_settings_time > 1000)
{ {
last_settings_time = OSTimeGet(); for(int i = 0; i < COUNT_POST + COUNT_VACUUM; i++)
GetData(&EnableCoinDesc, &enable_coin, i, DATA_FLAG_DIRECT_INDEX); {
GetData(&CashModeDesc, &cash_mode, i, DATA_FLAG_DIRECT_INDEX); GetData(&EnableCoinDesc, &enable_coin[i], i, DATA_FLAG_DIRECT_INDEX);
GetData(&EnableValidatorDesc, &cash_enable, i, DATA_FLAG_DIRECT_INDEX); GetData(&EnableValidatorDesc, &cash_enable[i], i, DATA_FLAG_DIRECT_INDEX);
GetData(&EnableSignalDesc, &enable_signal[i], i, DATA_FLAG_DIRECT_INDEX);
} }
last_settings_time = OSTimeGet();
}
for(int i = 0; i < COUNT_POST + COUNT_VACUUM; i++)
{
OSTimeDly(1); OSTimeDly(1);
if (enable_coin) if (enable_coin[i])
{ {
if (GetCoinCount(i)) if (GetCoinCount(i))
{ {
@ -67,7 +85,16 @@ void CoinTask(void *p_arg)
GetResetCoinCount(i); GetResetCoinCount(i);
} }
if (!cash_enable) {GetResetCashCount(i); continue;} if (enable_signal[i])
{
if (pend_signal_counter[i])
{
// åñòü óäåðæàíèå ñèãíàëà ïå÷àòè
PostUserEvent(EVENT_CASH_PRINT_CHECK_POST1 + i);
}
}
if (!cash_enable[i]) {GetResetCashCount(i); continue;}
if(i >= COUNT_POST) continue; if(i >= COUNT_POST) continue;
#if OS_CRITICAL_METHOD == 3 #if OS_CRITICAL_METHOD == 3
@ -78,7 +105,7 @@ void CoinTask(void *p_arg)
if (pend_cash_counter[i]) if (pend_cash_counter[i])
{ {
// èìïóëüñû èíêðåìåíòèðóåì òîëüêî ïîñëå âûäåðæêè ïàóçû // èìïóëüñû èíêðåìåíòèðóåì òîëüêî ïîñëå âûäåðæêè ïàóçû
if (OSTimeGet() - pend_cash_timestamp[i] > cash_pause) if (OSTimeGet() - pend_cash_timestamp[i] > cash_pause[i])
{ {
pend_cash_counter[i] = 0; pend_cash_counter[i] = 0;
CashImpCounter[i]++; CashImpCounter[i]++;
@ -86,8 +113,6 @@ void CoinTask(void *p_arg)
} }
OS_EXIT_CRITICAL(); OS_EXIT_CRITICAL();
if (cash_mode == 1)
{
if (GetCashCount(i)) if (GetCashCount(i))
{ {
if (last_cash_count[i] == GetCashCount(i)) if (last_cash_count[i] == GetCashCount(i))
@ -108,11 +133,6 @@ void CoinTask(void *p_arg)
last_cash_time[i] = OSTimeGet(); last_cash_time[i] = OSTimeGet();
} }
} }
else
{
GetResetCashCount(i);
}
}
} }
} }
@ -195,6 +215,7 @@ void InputCapture_ISR(void)
{ {
static CPU_INT32U period[COUNT_POST + COUNT_VACUUM]; static CPU_INT32U period[COUNT_POST + COUNT_VACUUM];
static CPU_INT32U period_cash[COUNT_POST + COUNT_VACUUM]; static CPU_INT32U period_cash[COUNT_POST + COUNT_VACUUM];
static CPU_INT32U period_signal[COUNT_POST + COUNT_VACUUM];
static CPU_INT32U T3CR = 0; static CPU_INT32U T3CR = 0;
// íàðàùèâàåì òèêè // íàðàùèâàåì òèêè
@ -207,8 +228,8 @@ void InputCapture_ISR(void)
CPU_INT32U cr=T3CR; CPU_INT32U cr=T3CR;
cr -= period_cash[0]; cr -= period_cash[0];
if ((cr > (cash_pulse - COIN_IMP_SPAN)) if ((cr > (cash_pulse[0] - COIN_IMP_SPAN))
&& (cr < (cash_pulse + COIN_IMP_SPAN))) && (cr < (cash_pulse[0] + COIN_IMP_SPAN)))
{ {
pend_cash_counter[0] = 1; pend_cash_counter[0] = 1;
pend_cash_timestamp[0] = OSTimeGet(); pend_cash_timestamp[0] = OSTimeGet();
@ -236,7 +257,20 @@ void InputCapture_ISR(void)
// ñèãíàë ïå÷àòè ÷åêà 1 // ñèãíàë ïå÷àòè ÷åêà 1
if (FIO4PIN_bit.P4_28) if (FIO4PIN_bit.P4_28)
{ // ïðèøåë çàäíèé ôðîíò
CPU_INT32U cr=T3CR;
cr -= period_signal[0];
if ((cr > (signal_pulse[0] - COIN_IMP_SPAN))
&& (cr < (signal_pulse[0] + COIN_IMP_SPAN)))
{ {
pend_signal_counter[0] = 1;
}
}
else
{ // ïðèøåë ïåðåäíèé ôðîíò
period_signal[0] = T3CR;
pend_signal_counter[0] = 0;
} }
// ïîñò 2 // ïîñò 2
@ -246,8 +280,8 @@ void InputCapture_ISR(void)
CPU_INT32U cr=T3CR; CPU_INT32U cr=T3CR;
cr -= period_cash[1]; cr -= period_cash[1];
if ((cr > (cash_pulse - COIN_IMP_SPAN)) if ((cr > (cash_pulse[1] - COIN_IMP_SPAN))
&& (cr < (cash_pulse + COIN_IMP_SPAN))) && (cr < (cash_pulse[1] + COIN_IMP_SPAN)))
{ {
pend_cash_counter[1] = 1; pend_cash_counter[1] = 1;
pend_cash_timestamp[1] = OSTimeGet(); pend_cash_timestamp[1] = OSTimeGet();
@ -285,8 +319,8 @@ void InputCapture_ISR(void)
CPU_INT32U cr=T3CR; CPU_INT32U cr=T3CR;
cr -= period_cash[2]; cr -= period_cash[2];
if ((cr > (cash_pulse - COIN_IMP_SPAN)) if ((cr > (cash_pulse[2] - COIN_IMP_SPAN))
&& (cr < (cash_pulse + COIN_IMP_SPAN))) && (cr < (cash_pulse[2] + COIN_IMP_SPAN)))
{ {
pend_cash_counter[2] = 1; pend_cash_counter[2] = 1;
pend_cash_timestamp[2] = OSTimeGet(); pend_cash_timestamp[2] = OSTimeGet();
@ -324,8 +358,8 @@ void InputCapture_ISR(void)
CPU_INT32U cr=T3CR; CPU_INT32U cr=T3CR;
cr -= period_cash[3]; cr -= period_cash[3];
if ((cr > (cash_pulse - COIN_IMP_SPAN)) if ((cr > (cash_pulse[3] - COIN_IMP_SPAN))
&& (cr < (cash_pulse + COIN_IMP_SPAN))) && (cr < (cash_pulse[3] + COIN_IMP_SPAN)))
{ {
pend_cash_counter[3] = 1; pend_cash_counter[3] = 1;
pend_cash_timestamp[3] = OSTimeGet(); pend_cash_timestamp[3] = OSTimeGet();
@ -363,8 +397,8 @@ void InputCapture_ISR(void)
CPU_INT32U cr=T3CR; CPU_INT32U cr=T3CR;
cr -= period_cash[4]; cr -= period_cash[4];
if ((cr > (cash_pulse - COIN_IMP_SPAN)) if ((cr > (cash_pulse[4] - COIN_IMP_SPAN))
&& (cr < (cash_pulse + COIN_IMP_SPAN))) && (cr < (cash_pulse[4] + COIN_IMP_SPAN)))
{ {
pend_cash_counter[4] = 1; pend_cash_counter[4] = 1;
pend_cash_timestamp[4] = OSTimeGet(); pend_cash_timestamp[4] = OSTimeGet();
@ -402,8 +436,8 @@ void InputCapture_ISR(void)
CPU_INT32U cr=T3CR; CPU_INT32U cr=T3CR;
cr -= period_cash[5]; cr -= period_cash[5];
if ((cr > (cash_pulse - COIN_IMP_SPAN)) if ((cr > (cash_pulse[5] - COIN_IMP_SPAN))
&& (cr < (cash_pulse + COIN_IMP_SPAN))) && (cr < (cash_pulse[5] + COIN_IMP_SPAN)))
{ {
pend_cash_counter[5] = 1; pend_cash_counter[5] = 1;
pend_cash_timestamp[5] = OSTimeGet(); pend_cash_timestamp[5] = OSTimeGet();
@ -489,12 +523,10 @@ void InitImpInput (void)
#endif #endif
OnChangeCashPulseLen(); OnChangeCashPulseLen();
OnChangeSinalPulseLen();
OS_ENTER_CRITICAL(); OS_ENTER_CRITICAL();
PCONP_bit.PCTIM3 = 1;
PCLKSEL1_bit.PCLK_TIMER3 = 2;
// íàçíà÷èì âñå íîæêè // íàçíà÷èì âñå íîæêè
// êóïþðîïðèåìíèê 1 // êóïþðîïðèåìíèê 1
@ -629,6 +661,9 @@ void InitImpInput (void)
FIO0DIR_bit.P0_10 = 0; FIO0DIR_bit.P0_10 = 0;
FIO0MASK_bit.P0_10 = 0; FIO0MASK_bit.P0_10 = 0;
PCONP_bit.PCTIM3 = 1;
PCLKSEL1_bit.PCLK_TIMER3 = 2;
pclk_freq = BSP_CPU_PclkFreq(23); pclk_freq = BSP_CPU_PclkFreq(23);
rld_cnts = pclk_freq / INPUT_CAPTURE_FREQ; rld_cnts = pclk_freq / INPUT_CAPTURE_FREQ;

View File

@ -14,7 +14,8 @@ extern void CoinDisable(void);
extern void CoinEnable(void); extern void CoinEnable(void);
extern CPU_INT32U GetCashCount(int index); extern CPU_INT32U GetCashCount(int index);
extern CPU_INT32U GetResetCashCount(int index); extern CPU_INT32U GetResetCashCount(int index);
extern void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause); extern void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post);
extern void SetSignalPulseParam(CPU_INT32U pulse, CPU_INT32U post);
#endif //#ifndef _COIN_H_ #endif //#ifndef _COIN_H_

View File

@ -14,7 +14,7 @@ Count=0
Enabled=0 Enabled=0
ShowSource=1 ShowSource=1
[DebugChecksum] [DebugChecksum]
Checksum=-1178438452 Checksum=206192145
[Exceptions] [Exceptions]
StopOnUncaught=_ 0 StopOnUncaught=_ 0
StopOnThrow=_ 0 StopOnThrow=_ 0
@ -153,7 +153,8 @@ ActionState=1
[Disassemble mode] [Disassemble mode]
mode=0 mode=0
[Breakpoints2] [Breakpoints2]
Count=0 Bp0=_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\services\coin.c}.222.3" 0 0 1 "" 0 "" 0
Count=1
[Log file] [Log file]
LoggingEnabled=_ 0 LoggingEnabled=_ 0
LogFile=_ "" LogFile=_ ""

View File

@ -34,7 +34,7 @@
</Tab> </Tab>
<Tab><Identity>TabID-28963-15244</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs> <Tab><Identity>TabID-28963-15244</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs>
<SelectedTab>1</SelectedTab></Wnd2><Wnd3> <SelectedTab>0</SelectedTab></Wnd2><Wnd3>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-1122-24249</Identity> <Identity>TabID-1122-24249</Identity>
@ -52,7 +52,7 @@
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.h</Filename><XPos>0</XPos><YPos>48</YPos><SelStart>1424</SelStart><SelEnd>1424</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app_cfg.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>58</SelStart><SelEnd>58</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\data.c</Filename><XPos>0</XPos><YPos>328</YPos><SelStart>9146</SelStart><SelEnd>9146</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\8\positive_6_24\OS\app\app.c</Filename><XPos>0</XPos><YPos>26</YPos><SelStart>1431</SelStart><SelEnd>1431</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>178</YPos><SelStart>4927</SelStart><SelEnd>4927</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>196</YPos><SelStart>4265</SelStart><SelEnd>4265</SelEnd></Tab><ActiveTab>5</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>4</YPos><SelStart>484</SelStart><SelEnd>484</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\console.c</Filename><XPos>0</XPos><YPos>109</YPos><SelStart>3332</SelStart><SelEnd>3332</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\cpu\cpu.h</Filename><XPos>0</XPos><YPos>85</YPos><SelStart>4578</SelStart><SelEnd>4589</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\lib\lib_def.h</Filename><XPos>0</XPos><YPos>111</YPos><SelStart>5973</SelStart><SelEnd>5981</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>42</YPos><SelStart>1154</SelStart><SelEnd>1154</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>28</YPos><SelStart>1100</SelStart><SelEnd>1115</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>44</YPos><SelStart>3205</SelStart><SelEnd>3205</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>42</YPos><SelStart>1144</SelStart><SelEnd>1144</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>12</YPos><SelStart>625</SelStart><SelEnd>625</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>29</YPos><SelStart>1131</SelStart><SelEnd>1131</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.c</Filename><XPos>0</XPos><YPos>206</YPos><SelStart>6077</SelStart><SelEnd>6077</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\iolpc2368.h</Filename><XPos>0</XPos><YPos>4662</YPos><SelStart>143604</SelStart><SelEnd>143604</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\bsp.c</Filename><XPos>0</XPos><YPos>149</YPos><SelStart>6678</SelStart><SelEnd>6678</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>709</YPos><SelStart>28889</SelStart><SelEnd>28889</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\control.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>49</SelStart><SelEnd>49</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>47</YPos><SelStart>1975</SelStart><SelEnd>1990</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>863</YPos><SelStart>36246</SelStart><SelEnd>36246</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>43</SelStart><SelEnd>43</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.h</Filename><XPos>0</XPos><YPos>48</YPos><SelStart>1424</SelStart><SelEnd>1424</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app_cfg.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>58</SelStart><SelEnd>58</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\8\positive_6_24\OS\app\app.c</Filename><XPos>0</XPos><YPos>26</YPos><SelStart>1431</SelStart><SelEnd>1431</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>178</YPos><SelStart>4927</SelStart><SelEnd>4927</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>4</YPos><SelStart>484</SelStart><SelEnd>484</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\console.c</Filename><XPos>0</XPos><YPos>109</YPos><SelStart>3332</SelStart><SelEnd>3332</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\cpu\cpu.h</Filename><XPos>0</XPos><YPos>85</YPos><SelStart>4578</SelStart><SelEnd>4589</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\lib\lib_def.h</Filename><XPos>0</XPos><YPos>111</YPos><SelStart>5973</SelStart><SelEnd>5981</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>39</YPos><SelStart>939</SelStart><SelEnd>939</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>31</YPos><SelStart>1536</SelStart><SelEnd>1564</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>44</YPos><SelStart>3205</SelStart><SelEnd>3205</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>42</YPos><SelStart>1144</SelStart><SelEnd>1144</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>12</YPos><SelStart>625</SelStart><SelEnd>625</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>29</YPos><SelStart>1131</SelStart><SelEnd>1131</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.c</Filename><XPos>0</XPos><YPos>206</YPos><SelStart>6077</SelStart><SelEnd>6077</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\iolpc2368.h</Filename><XPos>0</XPos><YPos>4662</YPos><SelStart>143604</SelStart><SelEnd>143604</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\bsp.c</Filename><XPos>0</XPos><YPos>149</YPos><SelStart>6678</SelStart><SelEnd>6678</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>636</YPos><SelStart>29216</SelStart><SelEnd>29216</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\control.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>49</SelStart><SelEnd>49</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>863</YPos><SelStart>36246</SelStart><SelEnd>36246</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\data.h</Filename><XPos>0</XPos><YPos>73</YPos><SelStart>1618</SelStart><SelEnd>1618</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\data.c</Filename><XPos>0</XPos><YPos>112</YPos><SelStart>3487</SelStart><SelEnd>3487</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>72</YPos><SelStart>2296</SelStart><SelEnd>2296</SelEnd></Tab><ActiveTab>22</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>163</SelStart><SelEnd>163</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\os_ii\source\os_time.c</Filename><XPos>0</XPos><YPos>208</YPos><SelStart>10123</SelStart><SelEnd>10123</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>