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

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

View File

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

View File

@ -1,7 +1,7 @@
#ifndef _VERSION_H_
#define _VERSION_H_
#define DEVICE_FW_VERSION "00.20"
#define DEVICE_FW_VERSION "00.21"
#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
ByteLimit=50
[DebugChecksum]
Checksum=-974017456
Checksum=-1413373321
[Exceptions]
StopOnUncaught=_ 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>
<name>OOCOutputFile</name>
<state>changer0_20.hex</state>
<state>changer0_21.hex</state>
</option>
<option>
<name>OOCCommandLineProducer</name>