новый режим работы хоппера

This commit is contained in:
Dmitriy 2021-06-16 21:21:42 +03:00
parent b8cd1217d9
commit 4f993ac10a
9 changed files with 16224 additions and 4245 deletions

File diff suppressed because it is too large Load Diff

View File

@ -620,8 +620,8 @@ void UserAppTask(void *p_arg)
// начали выдавать жетоны
hopperOn = 1;
// режим Cube - разрешаем выдавать жетоны - опускаем линию
FIO0CLR_bit.P0_24 = 1;
// режим Cube - разрешаем выдавать жетоны - поднимаем линию оптопара инвертирует в LOW, далее на P-канальный полевик
FIO0SET_bit.P0_24 = 1;
// печать чека, расчет остатка после остановки выдачи на хоппере
}

View File

@ -3798,6 +3798,16 @@ TDataDescStruct const HopperPauseLenDesc = {
/*************************************
режим хоппера
*************************************/
void OnChangeHopperRegime()
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr = 0;
#endif
OS_ENTER_CRITICAL();
InitInputPorts();
OS_EXIT_CRITICAL();
}
TRangeValueULONG const RegimeHopperRange = {0, 1};
CPU_INT08U const RegimeHopperName[] = "Режим";
CPU_INT08U const RegimeHopper_str0[] = "Elolution";
@ -3813,7 +3823,7 @@ TDataDescStruct const RegimeHopperDesc = {
0, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, DeviceConfig.hopperRegime), // указатель на переменную или адрес FRAM
(void*)&RegimeHopperRange, // указатель на границы параметра
NULL, // функция по изменению
OnChangeHopperRegime, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // смещение между элементами в массиве
RegimeHopperName, // указатель на строку названия параметра
DATA_IS_INDEX, // признак индексного параметра (список строк)

View File

@ -262,6 +262,7 @@ extern TDataDescStruct const TaxSystemDesc;
extern void OnChangeBankPulseLen();
extern void OnChangeHopperPulseLen();
extern void OnChangeHopperRegime();
extern TDataDescStruct const BankPerPulseDesc;
extern TDataDescStruct const BankPulseLenDesc;

View File

@ -60,6 +60,9 @@ CPU_INT32U period_bank;
CPU_INT32U period_signal;
CPU_INT32U period_hopper;
// ðåæèì õîïïåðà
CPU_INT32U regime_hopper = 0;
void SetCoinPulseParam(CPU_INT32U pulse, CPU_INT32U pause)
{
#if OS_CRITICAL_METHOD == 3
@ -123,7 +126,6 @@ void CoinTask(void *p_arg)
{
CPU_INT32U enable_coin;
CPU_INT32U bank_enable;
CPU_INT32U regime_hopper;
CPU_INT32U last_coin_count = GetCoinCount();
CPU_INT32U last_coin_time = OSTimeGet();
@ -138,7 +140,6 @@ void CoinTask(void *p_arg)
GetData(&EnableCoinDesc, &enable_coin, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&EnableBankDesc, &bank_enable, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&RegimeHopperDesc, &regime_hopper, 0, DATA_FLAG_SYSTEM_INDEX);
while(1)
{
@ -147,7 +148,6 @@ void CoinTask(void *p_arg)
last_settings_time = OSTimeGet();
GetData(&EnableCoinDesc, &enable_coin, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&EnableBankDesc, &bank_enable, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&RegimeHopperDesc, &regime_hopper, 0, DATA_FLAG_SYSTEM_INDEX);
}
OSTimeDly(1);
@ -507,22 +507,30 @@ CPU_INT32U input_register()
{
SETBIT(input, 0);
}
// 1 áèò
// 1 áèò - áàíîâñêèé òåðìèíàë
if (FIO0PIN_bit.P0_26)
{
SETBIT(input, 1);
}
// 2 áèò
if (FIO1PIN_bit.P1_25)
if(regime_hopper)
{
SETBIT(input, 2);
// 2 áèò - èìïóëüñû îò õîïïåðà â ðåæèìå Cube
if (FIO1PIN_bit.P1_23)
{
SETBIT(input, 2);
}
}
// 3 áèò
if (FIO1PIN_bit.P1_23)
else
{
SETBIT(input, 3);
// 3 áèò - óðîâåíü îáùåé îøèáêè îò õîïïåðà â îáû÷íîì ðåæèìå
if (FIO1PIN_bit.P1_23)
{
SETBIT(input, 3);
}
}
// 4 áèò
// 4 áèò - îøèáêà õîïïåðà - íåò äåíåã
if (FIO1PIN_bit.P1_24)
{
SETBIT(input, 4);
@ -593,7 +601,7 @@ void InputCapture_ISR(void)
// õîïïåð â ðåæèìå èìïóëüñîâ
if(TSTBIT(input_event, 2))
{
if ((!FIO1PIN_bit.P1_25 && hopperLevel) || (FIO1PIN_bit.P1_25 && !hopperLevel))
if ((!FIO1PIN_bit.P1_23 && hopperLevel) || (FIO1PIN_bit.P1_23 && !hopperLevel))
{ // ïðèøåë çàäíèé ôðîíò
CPU_INT32U cr=T3CR;
cr -= period_hopper;
@ -651,14 +659,16 @@ extern CPU_INT32U BSP_CPU_PclkFreq (CPU_INT08U pclk);
/*
P0.23 MK_P9 èìïóëüñíûé âûõîä ìîíåòîïðèåìíèêà
P0.26 MK_P6 èìïóëüñíûé âûõîä áàíêîâñêîãî òåðìèíàëà
P1.25 MK_P39 èìïóëüñíûé âûõîä õîïïåðà
P1.23 MK_P37 Security Output ñ õîïïåðîì âñå â ïîðÿäêå - LOW
P1.23 MK_P37 Security Output ñ õîïïåðîì âñå â ïîðÿäêå - LOW, â ðåæèìå Cube - èìïóëüñíûé âûõîä õîïïåðà, ñ÷èòàåì èìïóëüñû
P1.24 MK_P38 Íèçêèé óðîâåíü ìîíåò. Åñòü ìîíåòû - ñèãíàë LOW.
*/
void InitInputPorts()
{
// óñòàíîâèì ãëîáàëüíûé ðåæèì ðàáîòû õîïïåðà
GetData(&RegimeHopperDesc, &regime_hopper, 0, DATA_FLAG_SYSTEM_INDEX);
// ìîíåòîïðèåìíèê
PINSEL1_bit.P0_23 = 0;
if(cashLevel)PINMODE1_bit.P0_23 = 3;
@ -673,18 +683,23 @@ void InitInputPorts()
FIO0DIR_bit.P0_26 = 0;
FIO0MASK_bit.P0_26 = 0;
// õîïïåð â ðåæèìå èìïóëüñîâ
PINSEL3_bit.P1_25 = 0;
if(hopperLevel)PINMODE3_bit.P1_25 = 3;
else PINMODE3_bit.P1_25 = 0;
FIO1DIR_bit.P1_25 = 0;
FIO1MASK_bit.P1_25 = 0;
// ñèãíàë ñîñòîÿíèÿ õîïïåðà
PINSEL3_bit.P1_23 = 0;
PINMODE3_bit.P1_23 = 0;
FIO1DIR_bit.P1_23 = 0;
FIO1MASK_bit.P1_23 = 0;
if(regime_hopper)
{
// õîïïåð â ðåæèìå èìïóëüñîâ - ðåæèì Cube - ðåæèì óïðàâëåíèÿ óðîâíåì
PINSEL3_bit.P1_23 = 0;
if(hopperLevel)PINMODE3_bit.P1_23 = 3;
else PINMODE3_bit.P1_23 = 0;
FIO1DIR_bit.P1_23 = 0;
FIO1MASK_bit.P1_23 = 0;
}
else
{
// ñèãíàë ñîñòîÿíèÿ õîïïåðà - ðåæèì óïðàâëåíèÿ èìïóëüñàìè
PINSEL3_bit.P1_23 = 0;
PINMODE3_bit.P1_23 = 0;
FIO1DIR_bit.P1_23 = 0;
FIO1MASK_bit.P1_23 = 0;
}
// ñèãíàë íàëè÷èÿ ìîíåò â õîïïåðå
PINSEL3_bit.P1_24 = 0;
@ -748,7 +763,7 @@ void InitImpInput (void)
OnChangeCashPulseLen();
OnChangeBankPulseLen();
OnChangeHopperPulseLen();
OS_ENTER_CRITICAL();
// íàçíà÷èì âñå íîæêè

View File

@ -1,7 +1,7 @@
#ifndef _VERSION_H_
#define _VERSION_H_
#define DEVICE_FW_VERSION "00.16"
#define DEVICE_FW_VERSION "00.17"
#endif // #ifndef _VERSION_H_

View File

@ -64,14 +64,14 @@
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.h</Filename><XPos>0</XPos><YPos>18</YPos><SelStart>882</SelStart><SelEnd>882</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.h</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>1197</SelStart><SelEnd>1197</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename><XPos>0</XPos><YPos>48</YPos><SelStart>2489</SelStart><SelEnd>2489</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\ftp_client.c</Filename><XPos>0</XPos><YPos>643</YPos><SelStart>18595</SelStart><SelEnd>18595</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>313</YPos><SelStart>8375</SelStart><SelEnd>8375</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\mode.c</Filename><XPos>0</XPos><YPos>36</YPos><SelStart>790</SelStart><SelEnd>790</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>64</YPos><SelStart>1559</SelStart><SelEnd>1559</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>227</YPos><SelStart>24893</SelStart><SelEnd>24893</SelEnd></Tab><ActiveTab>7</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c</Filename><XPos>0</XPos><YPos>514</YPos><SelStart>13150</SelStart><SelEnd>13150</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>85</YPos><SelStart>3200</SelStart><SelEnd>3200</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h</Filename><XPos>0</XPos><YPos>342</YPos><SelStart>17905</SelStart><SelEnd>18021</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>389</YPos><SelStart>12067</SelStart><SelEnd>12067</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.c</Filename><XPos>0</XPos><YPos>93</YPos><SelStart>3391</SelStart><SelEnd>3391</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>452</SelStart><SelEnd>452</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>40</YPos><SelStart>1323</SelStart><SelEnd>1323</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>274</YPos><SelStart>6987</SelStart><SelEnd>6987</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>31</YPos><SelStart>1149</SelStart><SelEnd>1149</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\bsp.c</Filename><XPos>0</XPos><YPos>80</YPos><SelStart>3757</SelStart><SelEnd>3757</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>466</SelStart><SelEnd>466</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.c</Filename><XPos>0</XPos><YPos>344</YPos><SelStart>10091</SelStart><SelEnd>10091</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>3817</YPos><SelStart>177097</SelStart><SelEnd>177097</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>1176</YPos><SelStart>50104</SelStart><SelEnd>50104</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>14</YPos><SelStart>1672</SelStart><SelEnd>1672</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\version.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>77</SelStart><SelEnd>77</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\validator.c</Filename><XPos>0</XPos><YPos>278</YPos><SelStart>10049</SelStart><SelEnd>10049</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\services\coin.h</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>1197</SelStart><SelEnd>1197</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\ftp_client.c</Filename><XPos>0</XPos><YPos>643</YPos><SelStart>18595</SelStart><SelEnd>18595</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>313</YPos><SelStart>8375</SelStart><SelEnd>8375</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\mode.c</Filename><XPos>0</XPos><YPos>36</YPos><SelStart>790</SelStart><SelEnd>790</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>64</YPos><SelStart>1559</SelStart><SelEnd>1559</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c</Filename><XPos>0</XPos><YPos>945</YPos><SelStart>24859</SelStart><SelEnd>24859</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>171</YPos><SelStart>4589</SelStart><SelEnd>4589</SelEnd></Tab><ActiveTab>6</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h</Filename><XPos>0</XPos><YPos>47</YPos><SelStart>1955</SelStart><SelEnd>1992</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>1112</YPos><SelStart>28730</SelStart><SelEnd>28744</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.c</Filename><XPos>0</XPos><YPos>93</YPos><SelStart>3391</SelStart><SelEnd>3391</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>452</SelStart><SelEnd>452</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>40</YPos><SelStart>1323</SelStart><SelEnd>1323</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>31</YPos><SelStart>1149</SelStart><SelEnd>1149</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\bsp.c</Filename><XPos>0</XPos><YPos>80</YPos><SelStart>3757</SelStart><SelEnd>3757</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>466</SelStart><SelEnd>466</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.c</Filename><XPos>0</XPos><YPos>344</YPos><SelStart>10091</SelStart><SelEnd>10091</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>3794</YPos><SelStart>175574</SelStart><SelEnd>175574</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>1804</YPos><SelStart>72527</SelStart><SelEnd>72527</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>14</YPos><SelStart>1672</SelStart><SelEnd>1672</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\version.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>77</SelStart><SelEnd>77</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\validator.c</Filename><XPos>0</XPos><YPos>278</YPos><SelStart>10096</SelStart><SelEnd>10096</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename><XPos>0</XPos><YPos>48</YPos><SelStart>2292</SelStart><SelEnd>2339</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.h</Filename><XPos>0</XPos><YPos>18</YPos><SelStart>875</SelStart><SelEnd>909</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>785</YPos><SelStart>28417</SelStart><SelEnd>28439</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
<Top><Row0><Sizes><Toolbar-017e1310><key>iaridepm.enu1</key></Toolbar-017e1310></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>706</Bottom><Right>256</Right><x>-2</x><y>-2</y><xscreen>187</xscreen><yscreen>271</yscreen><sizeHorzCX>146094</sizeHorzCX><sizeHorzCY>276249</sizeHorzCY><sizeVertCX>201563</sizeVertCX><sizeVertCY>721713</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>230</Bottom><Right>1282</Right><x>-2</x><y>-2</y><xscreen>1284</xscreen><yscreen>232</yscreen><sizeHorzCX>1003125</sizeHorzCX><sizeHorzCY>236493</sizeHorzCY><sizeVertCX>146094</sizeVertCX><sizeVertCY>276249</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
<Top><Row0><Sizes><Toolbar-056001f8><key>iaridepm.enu1</key></Toolbar-056001f8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>707</Bottom><Right>256</Right><x>-2</x><y>-2</y><xscreen>187</xscreen><yscreen>271</yscreen><sizeHorzCX>146094</sizeHorzCX><sizeHorzCY>276249</sizeHorzCY><sizeVertCX>201563</sizeVertCX><sizeVertCY>722732</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>229</Bottom><Right>1282</Right><x>-2</x><y>-2</y><xscreen>1284</xscreen><yscreen>231</yscreen><sizeHorzCX>1003125</sizeHorzCX><sizeHorzCY>235474</sizeHorzCY><sizeVertCX>146094</sizeVertCX><sizeVertCY>276249</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>

File diff suppressed because it is too large Load Diff

View File

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