таймер настроили

вроде только на 10 000 гц будет работать
This commit is contained in:
dimoniche 2019-06-04 02:17:23 +03:00
parent ea558ae8c7
commit 0daa728d2e
4 changed files with 39 additions and 36 deletions

View File

@ -29,7 +29,7 @@ void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post)
OS_CPU_SR cpu_sr = 0; OS_CPU_SR cpu_sr = 0;
#endif #endif
OS_ENTER_CRITICAL(); OS_ENTER_CRITICAL();
cash_pulse[post] = pulse * 100; cash_pulse[post] = pulse * 10;
cash_pause[post] = pause; cash_pause[post] = pause;
OS_EXIT_CRITICAL(); OS_EXIT_CRITICAL();
} }
@ -40,7 +40,7 @@ void SetSignalPulseParam(CPU_INT32U pulse, CPU_INT32U post)
OS_CPU_SR cpu_sr = 0; OS_CPU_SR cpu_sr = 0;
#endif #endif
OS_ENTER_CRITICAL(); OS_ENTER_CRITICAL();
signal_pulse[post] = pulse * 2000; signal_pulse[post] = pulse * 200;
OS_EXIT_CRITICAL(); OS_EXIT_CRITICAL();
} }
@ -218,9 +218,11 @@ void InputCapture_ISR(void)
static CPU_INT32U period_signal[COUNT_POST + COUNT_VACUUM]; static CPU_INT32U period_signal[COUNT_POST + COUNT_VACUUM];
static CPU_INT32U T3CR = 0; static CPU_INT32U T3CR = 0;
T3IR = 0xFF;
// íàğàùèâàåì òèêè // íàğàùèâàåì òèêè
T3CR++; T3CR++;
// ïîñò 1 // ïîñò 1
// êóïşğîïğèåìíèê 1 // êóïşğîïğèåìíèê 1
if (FIO1PIN_bit.P1_20) if (FIO1PIN_bit.P1_20)
@ -505,7 +507,6 @@ void InputCapture_ISR(void)
if (FIO0PIN_bit.P0_10) if (FIO0PIN_bit.P0_10)
{ {
} }
} }
extern CPU_INT32U BSP_CPU_PclkFreq (CPU_INT08U pclk); extern CPU_INT32U BSP_CPU_PclkFreq (CPU_INT08U pclk);
@ -513,7 +514,7 @@ extern CPU_INT32U BSP_CPU_PclkFreq (CPU_INT08U pclk);
// èíèöèàëèçàöèÿ èìïóëüñíûõ âõîäîâ // èíèöèàëèçàöèÿ èìïóëüñíûõ âõîäîâ
void InitImpInput (void) void InitImpInput (void)
{ {
#define INPUT_CAPTURE_FREQ 100000 // ÷àñòîòà òàêòèðîâàíèÿ ÷àñòîòíûõ âõîäîâ #define INPUT_CAPTURE_FREQ 10000 // ÷àñòîòà òàêòèðîâàíèÿ ÷àñòîòíûõ âõîäîâ
CPU_INT32U pclk_freq; CPU_INT32U pclk_freq;
CPU_INT32U rld_cnts; CPU_INT32U rld_cnts;
@ -530,133 +531,133 @@ void InitImpInput (void)
// íàçíà÷èì âñå íîæêè // íàçíà÷èì âñå íîæêè
// êóïşğîïğèåìíèê 1 // êóïşğîïğèåìíèê 1
PINSEL3_bit.P1_20 = 0x3; PINSEL3_bit.P1_20 = 0;
PINMODE3_bit.P1_20 = 0; PINMODE3_bit.P1_20 = 0;
FIO1DIR_bit.P1_20 = 0; FIO1DIR_bit.P1_20 = 0;
FIO1MASK_bit.P1_20 = 0; FIO1MASK_bit.P1_20 = 0;
// ìîíåòîïğèåìíèê 1 // ìîíåòîïğèåìíèê 1
PINSEL3_bit.P1_21 = 0x3; PINSEL3_bit.P1_21 = 0;
PINMODE3_bit.P1_21 = 0; PINMODE3_bit.P1_21 = 0;
FIO1DIR_bit.P1_21 = 0; FIO1DIR_bit.P1_21 = 0;
FIO1MASK_bit.P1_21 = 0; FIO1MASK_bit.P1_21 = 0;
// ñèãíàë ïå÷àòè ÷åêà ïîñò 1 // ñèãíàë ïå÷àòè ÷åêà ïîñò 1
PINSEL9_bit.P4_28 = 0x3; PINSEL9_bit.P4_28 = 0;
PINMODE9_bit.P4_28 = 0; PINMODE9_bit.P4_28 = 0;
FIO4DIR_bit.P4_28 = 0; FIO4DIR_bit.P4_28 = 0;
FIO4MASK_bit.P4_28 = 0; FIO4MASK_bit.P4_28 = 0;
// êóïşğîïğèåìíèê 2 // êóïşğîïğèåìíèê 2
PINSEL3_bit.P1_19 = 0x3; PINSEL3_bit.P1_19 = 0;
PINMODE3_bit.P1_19 = 0; PINMODE3_bit.P1_19 = 0;
FIO1DIR_bit.P1_19 = 0; FIO1DIR_bit.P1_19 = 0;
FIO1MASK_bit.P1_19 = 0; FIO1MASK_bit.P1_19 = 0;
// ìîíåòîïğèåìíèê 2 // ìîíåòîïğèåìíèê 2
PINSEL3_bit.P1_18 = 0x3; PINSEL3_bit.P1_18 = 0;
PINMODE3_bit.P1_18 = 0; PINMODE3_bit.P1_18 = 0;
FIO1DIR_bit.P1_18 = 0; FIO1DIR_bit.P1_18 = 0;
FIO1MASK_bit.P1_18 = 0; FIO1MASK_bit.P1_18 = 0;
// ñèãíàë ïå÷àòè ÷åêà ïîñò 2 // ñèãíàë ïå÷àòè ÷åêà ïîñò 2
PINSEL0_bit.P0_4 = 0x3; PINSEL0_bit.P0_4 = 0;
PINMODE0_bit.P0_4 = 0; PINMODE0_bit.P0_4 = 0;
FIO0DIR_bit.P0_4 = 0; FIO0DIR_bit.P0_4 = 0;
FIO0MASK_bit.P0_4 = 0; FIO0MASK_bit.P0_4 = 0;
// êóïşğîïğèåìíèê 3 // êóïşğîïğèåìíèê 3
PINSEL7_bit.P3_25 = 0x3; PINSEL7_bit.P3_25 = 0;
PINMODE7_bit.P3_25 = 0; PINMODE7_bit.P3_25 = 0;
FIO3DIR_bit.P3_25 = 0; FIO3DIR_bit.P3_25 = 0;
FIO3MASK_bit.P3_25 = 0; FIO3MASK_bit.P3_25 = 0;
// ìîíåòîïğèåìíèê 3 // ìîíåòîïğèåìíèê 3
PINSEL7_bit.P3_26 = 0x3; PINSEL7_bit.P3_26 = 0;
PINMODE7_bit.P3_26 = 0; PINMODE7_bit.P3_26 = 0;
FIO3DIR_bit.P3_26 = 0; FIO3DIR_bit.P3_26 = 0;
FIO3MASK_bit.P3_26 = 0; FIO3MASK_bit.P3_26 = 0;
// ñèãíàë ïå÷àòè ÷åêà ïîñò 3 // ñèãíàë ïå÷àòè ÷åêà ïîñò 3
PINSEL3_bit.P1_28 = 0x3; PINSEL3_bit.P1_28 = 0;
PINMODE3_bit.P1_28 = 0; PINMODE3_bit.P1_28 = 0;
FIO1DIR_bit.P1_28 = 0; FIO1DIR_bit.P1_28 = 0;
FIO1MASK_bit.P1_28 = 0; FIO1MASK_bit.P1_28 = 0;
// êóïşğîïğèåìíèê 4 // êóïşğîïğèåìíèê 4
PINSEL1_bit.P0_26 = 0x3; PINSEL1_bit.P0_26 = 0;
PINMODE1_bit.P0_26 = 0; PINMODE1_bit.P0_26 = 0;
FIO0DIR_bit.P0_26 = 0; FIO0DIR_bit.P0_26 = 0;
FIO0MASK_bit.P0_26 = 0; FIO0MASK_bit.P0_26 = 0;
// ìîíåòîïğèåìíèê 4 // ìîíåòîïğèåìíèê 4
PINSEL1_bit.P0_25 = 0x3; PINSEL1_bit.P0_25 = 0;
PINMODE1_bit.P0_25 = 0; PINMODE1_bit.P0_25 = 0;
FIO0DIR_bit.P0_25 = 0; FIO0DIR_bit.P0_25 = 0;
FIO0MASK_bit.P0_25 = 0; FIO0MASK_bit.P0_25 = 0;
// ñèãíàë ïå÷àòè ÷åêà ïîñò 4 // ñèãíàë ïå÷àòè ÷åêà ïîñò 4
PINSEL3_bit.P1_27 = 0x3; PINSEL3_bit.P1_27 = 0;
PINMODE3_bit.P1_27 = 0; PINMODE3_bit.P1_27 = 0;
FIO1DIR_bit.P1_27 = 0; FIO1DIR_bit.P1_27 = 0;
FIO1MASK_bit.P1_27 = 0; FIO1MASK_bit.P1_27 = 0;
// êóïşğîïğèåìíèê 5 // êóïşğîïğèåìíèê 5
PINSEL0_bit.P0_9 = 0x3; PINSEL0_bit.P0_9 = 0;
PINMODE0_bit.P0_9 = 0; PINMODE0_bit.P0_9 = 0;
FIO0DIR_bit.P0_9 = 0; FIO0DIR_bit.P0_9 = 0;
FIO0MASK_bit.P0_9 = 0; FIO0MASK_bit.P0_9 = 0;
// ìîíåòîïğèåìíèê 5 // ìîíåòîïğèåìíèê 5
PINSEL4_bit.P2_2 = 0x3; PINSEL4_bit.P2_2 = 0;
PINMODE4_bit.P2_2 = 0; PINMODE4_bit.P2_2 = 0;
FIO2DIR_bit.P2_2 = 0; FIO2DIR_bit.P2_2 = 0;
FIO2MASK_bit.P2_2 = 0; FIO2MASK_bit.P2_2 = 0;
// ñèãíàë ïå÷àòè ÷åêà ïîñò 5 // ñèãíàë ïå÷àòè ÷åêà ïîñò 5
PINSEL3_bit.P1_26 = 0x3; PINSEL3_bit.P1_26 = 0;
PINMODE3_bit.P1_26 = 0; PINMODE3_bit.P1_26 = 0;
FIO1DIR_bit.P1_26 = 0; FIO1DIR_bit.P1_26 = 0;
FIO1MASK_bit.P1_26 = 0; FIO1MASK_bit.P1_26 = 0;
// êóïşğîïğèåìíèê 6 // êóïşğîïğèåìíèê 6
PINSEL0_bit.P0_7 = 0x3; PINSEL0_bit.P0_7 = 0;
PINMODE0_bit.P0_7 = 0; PINMODE0_bit.P0_7 = 0;
FIO0DIR_bit.P0_7 = 0; FIO0DIR_bit.P0_7 = 0;
FIO0MASK_bit.P0_7 = 0; FIO0MASK_bit.P0_7 = 0;
// ìîíåòîïğèåìíèê 6 // ìîíåòîïğèåìíèê 6
PINSEL0_bit.P0_8 = 0x3; PINSEL0_bit.P0_8 = 0;
PINMODE0_bit.P0_8 = 0; PINMODE0_bit.P0_8 = 0;
FIO0DIR_bit.P0_8 = 0; FIO0DIR_bit.P0_8 = 0;
FIO0MASK_bit.P0_8 = 0; FIO0MASK_bit.P0_8 = 0;
// ñèãíàë ïå÷àòè ÷åêà ïîñò 6 // ñèãíàë ïå÷àòè ÷åêà ïîñò 6
PINSEL0_bit.P0_0 = 0x3; PINSEL0_bit.P0_0 = 0;
PINMODE0_bit.P0_0 = 0; PINMODE0_bit.P0_0 = 0;
FIO0DIR_bit.P0_0 = 0; FIO0DIR_bit.P0_0 = 0;
FIO0MASK_bit.P0_0 = 0; FIO0MASK_bit.P0_0 = 0;
// ìîíåòîïğèåìíèê ïûëåñîñ 1 // ìîíåòîïğèåìíèê ïûëåñîñ 1
PINSEL0_bit.P0_5 = 0x3; PINSEL0_bit.P0_5 = 0;
PINMODE0_bit.P0_5 = 0; PINMODE0_bit.P0_5 = 0;
FIO0DIR_bit.P0_5 = 0; FIO0DIR_bit.P0_5 = 0;
FIO0MASK_bit.P0_5 = 0; FIO0MASK_bit.P0_5 = 0;
// ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 1 // ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 1
PINSEL0_bit.P0_6 = 0x3; PINSEL0_bit.P0_6 = 0;
PINMODE0_bit.P0_6 = 0; PINMODE0_bit.P0_6 = 0;
FIO0DIR_bit.P0_6 = 0; FIO0DIR_bit.P0_6 = 0;
FIO0MASK_bit.P0_6 = 0; FIO0MASK_bit.P0_6 = 0;
// ìîíåòîïğèåìíèê ïûëåñîñ 2 // ìîíåòîïğèåìíèê ïûëåñîñ 2
PINSEL3_bit.P1_25 = 0x3; PINSEL3_bit.P1_25 = 0;
PINMODE3_bit.P1_25 = 0; PINMODE3_bit.P1_25 = 0;
FIO1DIR_bit.P1_25 = 0; FIO1DIR_bit.P1_25 = 0;
FIO1MASK_bit.P1_25 = 0; FIO1MASK_bit.P1_25 = 0;
// ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 2 // ñèãíàë ïå÷àòè ÷åêà ïûëåñîñ 2
PINSEL0_bit.P0_10 = 0x3; PINSEL0_bit.P0_10 = 0;
PINMODE0_bit.P0_10 = 0; PINMODE0_bit.P0_10 = 0;
FIO0DIR_bit.P0_10 = 0; FIO0DIR_bit.P0_10 = 0;
FIO0MASK_bit.P0_10 = 0; FIO0MASK_bit.P0_10 = 0;
@ -665,12 +666,15 @@ void InitImpInput (void)
PCLKSEL1_bit.PCLK_TIMER3 = 2; 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 / 2;
T3CTCR_bit.CTM = 0; T3CTCR_bit.CTM = 0;
T3CTCR_bit.CIS = 0; // select CAP3.0 input T3CTCR_bit.CIS = 0; // select CAP3.0 input
T3PR = rld_cnts-1; T3PR = rld_cnts-1;
T3MCR = 0;
T3MR0 = 1;
T3MCR = 3;
T3CCR = 0x00; T3CCR = 0x00;
T3EMR = 0; T3EMR = 0;
T3TCR = 0x03; T3TCR = 0x03;

View File

@ -1,11 +1,11 @@
#ifndef _COIN_H_ #ifndef _COIN_H_
#define _COIN_H_ #define _COIN_H_
#define COIN_IMP_MIN_LEN 2200 // ěń/100 #define COIN_IMP_MIN_LEN 220 // ěń/10
#define COIN_IMP_MAX_LEN 9000 // ěń/100 #define COIN_IMP_MAX_LEN 900 // ěń/10
// çàïàñ èçìåðåíèÿ ïåðèîäà, ïëþñ-ìèíóñ // çàïàñ èçìåðåíèÿ ïåðèîäà, ïëþñ-ìèíóñ
#define COIN_IMP_SPAN 1000 // ěń/100 #define COIN_IMP_SPAN 100 // ěń/10
extern void InitCoin(void); extern void InitCoin(void);
extern CPU_INT32U GetCoinCount(int index); extern CPU_INT32U GetCoinCount(int index);

View File

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

File diff suppressed because one or more lines are too long