выдача жетонов теперь правильная

This commit is contained in:
Dmitriy 2021-07-08 01:12:50 +03:00
parent e7de362b41
commit 12faf624f2
9 changed files with 16991 additions and 5043 deletions

File diff suppressed because it is too large Load Diff

View File

@ -292,6 +292,10 @@ void UserAppTask(void *p_arg)
// õîïïåð âêëþ÷åí è ïðèøëî âðåìÿ îñòàíîâèòü õîïïåð // õîïïåð âêëþ÷åí è ïðèøëî âðåìÿ îñòàíîâèòü õîïïåð
FIO0CLR_bit.P0_24 = 1; FIO0CLR_bit.P0_24 = 1;
hopperOn = 0; hopperOn = 0;
// и сбросить деньги - все равно уже не выдадим - простим
SetAcceptedMoney(0);
SetAcceptedBankMoney(0);
} }
// âûäàåì ìîíåòû ïî êíîïêå? // âûäàåì ìîíåòû ïî êíîïêå?
@ -827,6 +831,7 @@ void UserAppTask(void *p_arg)
if (coin >= CountCoin) if (coin >= CountCoin)
{ {
// âñå âûäàëè - îñòàíàâëèâàåì âûäà÷ó // âñå âûäàëè - îñòàíàâëèâàåì âûäà÷ó
//OSTimeDly(10);
FIO0CLR_bit.P0_24 = 1; FIO0CLR_bit.P0_24 = 1;
IncCounterCoinOut(CountCoin); IncCounterCoinOut(CountCoin);
@ -864,8 +869,8 @@ void UserAppTask(void *p_arg)
} }
break; break;
case EVENT_KEY_F1: case EVENT_KEY_F1:
//testMoney = 10; //testMoney = 50;
//PostUserEvent(EVENT_COIN_INSERTED); PostUserEvent(EVENT_COIN_INSERTED);
break; break;
case EVENT_KEY_F2: case EVENT_KEY_F2:
//testMoney = 50; //testMoney = 50;

View File

@ -60,6 +60,8 @@ CPU_INT32U period_bank;
CPU_INT32U period_signal; CPU_INT32U period_signal;
CPU_INT32U period_hopper; CPU_INT32U period_hopper;
CPU_INT32U firstHopperEvent = 1;
// ðåæèì õîïïåðà // ðåæèì õîïïåðà
CPU_INT32U regime_hopper = 0; CPU_INT32U regime_hopper = 0;
@ -281,34 +283,26 @@ void CoinTask(void *p_arg)
OS_ENTER_CRITICAL(); OS_ENTER_CRITICAL();
if (pend_hopper_counter) if (pend_hopper_counter)
{ {
// èìïóëüñû èíêðåìåíòèðóåì òîëüêî ïîñëå âûäåðæêè ïàóçû pend_hopper_counter = 0;
if (OSTimeGet() - pend_hopper_timestamp > hopper_pause)
{ if(firstHopperEvent) { HopperImpCounter = 0; firstHopperEvent = 0; }
pend_hopper_counter = 0; else HopperImpCounter++;
HopperImpCounter++;
}
} }
OS_EXIT_CRITICAL(); OS_EXIT_CRITICAL();
if (GetHopperCount()) if (GetHopperCount())
{ {
if (last_hopper_count == GetHopperCount()) if (last_hopper_count < GetHopperCount())
{
if (labs(OSTimeGet() - last_hopper_time) > 500)
{
// ñîáûòèå îò õîïïåðà øëåì ïî÷òè ñðàçó - ÷òîáû óñïåòü âñå âîâðåìÿ îñòàíîâèòü
PostUserEvent(EVENT_HOPPER_EXTRACTED);
}
}
else
{ {
// ñîáûòèå îò õîïïåðà øëåì ïî÷òè ñðàçó - ÷òîáû óñïåòü âñå âîâðåìÿ îñòàíîâèòü
PostUserEvent(EVENT_HOPPER_EXTRACTED);
last_hopper_count = GetHopperCount(); last_hopper_count = GetHopperCount();
last_hopper_time = OSTimeGet();
} }
} }
else else
{ {
last_hopper_time = OSTimeGet(); last_hopper_time = OSTimeGet();
last_hopper_count = 0;
} }
} }
else else
@ -619,21 +613,10 @@ void InputCapture_ISR(void)
// õîïïåð â ðåæèìå èìïóëüñîâ // õîïïåð â ðåæèìå èìïóëüñîâ
if(TSTBIT(input_event, 2)) if(TSTBIT(input_event, 2))
{ {
if ((!FIO1PIN_bit.P1_23 && hopperLevel) || (FIO1PIN_bit.P1_23 && !hopperLevel)) if (FIO1PIN_bit.P1_23)
{ // ïðèøåë çàäíèé ôðîíò { // ïðèøåë çàäíèé ôðîíò
CPU_INT32U cr=T3CR; pend_hopper_counter = 1;
cr -= period_hopper; pend_hopper_timestamp = OSTimeGet();
if (cr > (hopper_pulse - COIN_IMP_SPAN))
{
pend_hopper_counter = 1;
pend_hopper_timestamp = OSTimeGet();
}
}
else
{ // ïðèøåë ïåðåäíèé ôðîíò
period_hopper = T3CR;
pend_hopper_counter = 0;
} }
} }

View File

@ -1,7 +1,7 @@
#ifndef _VERSION_H_ #ifndef _VERSION_H_
#define _VERSION_H_ #define _VERSION_H_
#define DEVICE_FW_VERSION "00.20" #define DEVICE_FW_VERSION "00.21"
#endif // #ifndef _VERSION_H_ #endif // #ifndef _VERSION_H_

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0 LimitSize=0
ByteLimit=50 ByteLimit=50
[DebugChecksum] [DebugChecksum]
Checksum=-974017456 Checksum=-1413373321
[Exceptions] [Exceptions]
StopOnUncaught=_ 0 StopOnUncaught=_ 0
StopOnThrow=_ 0 StopOnThrow=_ 0

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1513,7 +1513,7 @@
</option> </option>
<option> <option>
<name>OOCOutputFile</name> <name>OOCOutputFile</name>
<state>changer0_20.hex</state> <state>changer0_21.hex</state>
</option> </option>
<option> <option>
<name>OOCCommandLineProducer</name> <name>OOCCommandLineProducer</name>