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

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

View File

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

View File

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

File diff suppressed because one or more lines are too long