|
@@ -36,6 +36,7 @@ void BoardInit(double ts)
|
|
Sim_GpioInit(&ledPin);
|
|
Sim_GpioInit(&ledPin);
|
|
Sim_GpioInit(&capPin);
|
|
Sim_GpioInit(&capPin);
|
|
Sim_GpioInit(&breakPin);
|
|
Sim_GpioInit(&breakPin);
|
|
|
|
+ Sim_GpioInit(&bikeBrakePin);
|
|
Sim_TimerInit(&sysTick);
|
|
Sim_TimerInit(&sysTick);
|
|
Sim_TimerInit(&tbsTick);
|
|
Sim_TimerInit(&tbsTick);
|
|
Sim_TimerInit(&tbcHalfUpdateTick);
|
|
Sim_TimerInit(&tbcHalfUpdateTick);
|
|
@@ -43,7 +44,8 @@ void BoardInit(double ts)
|
|
Sim_TimerInit(&sampleTrigTimer);
|
|
Sim_TimerInit(&sampleTrigTimer);
|
|
Sim_TimerInit(&sampleTrigTimer2);
|
|
Sim_TimerInit(&sampleTrigTimer2);
|
|
Sim_DMAInit(&pwmLoadDma);
|
|
Sim_DMAInit(&pwmLoadDma);
|
|
- Sim_CaptureInit(&inputCap);
|
|
|
|
|
|
+ Sim_CaptureInit(&cadenceCap);
|
|
|
|
+ Sim_CaptureInit(&bikeSpdCap);
|
|
/* 调度器外设注册 */
|
|
/* 调度器外设注册 */
|
|
scheduler.Register(&scheduler, &pwm.Base);
|
|
scheduler.Register(&scheduler, &pwm.Base);
|
|
scheduler.Register(&scheduler, &adc.Base);
|
|
scheduler.Register(&scheduler, &adc.Base);
|
|
@@ -52,6 +54,7 @@ void BoardInit(double ts)
|
|
scheduler.Register(&scheduler, &ledPin.Base);
|
|
scheduler.Register(&scheduler, &ledPin.Base);
|
|
scheduler.Register(&scheduler, &capPin.Base);
|
|
scheduler.Register(&scheduler, &capPin.Base);
|
|
scheduler.Register(&scheduler, &breakPin.Base);
|
|
scheduler.Register(&scheduler, &breakPin.Base);
|
|
|
|
+ scheduler.Register(&scheduler, &bikeBrakePin.Base);
|
|
scheduler.Register(&scheduler, &sysTick.Base);
|
|
scheduler.Register(&scheduler, &sysTick.Base);
|
|
scheduler.Register(&scheduler, &tbsTick.Base);
|
|
scheduler.Register(&scheduler, &tbsTick.Base);
|
|
scheduler.Register(&scheduler, &tbcHalfUpdateTick.Base);
|
|
scheduler.Register(&scheduler, &tbcHalfUpdateTick.Base);
|
|
@@ -59,7 +62,8 @@ void BoardInit(double ts)
|
|
scheduler.Register(&scheduler, &sampleTrigTimer.Base);
|
|
scheduler.Register(&scheduler, &sampleTrigTimer.Base);
|
|
scheduler.Register(&scheduler, &sampleTrigTimer2.Base);
|
|
scheduler.Register(&scheduler, &sampleTrigTimer2.Base);
|
|
scheduler.Register(&scheduler, &pwmLoadDma.Base);
|
|
scheduler.Register(&scheduler, &pwmLoadDma.Base);
|
|
- scheduler.Register(&scheduler, &inputCap.Base);
|
|
|
|
|
|
+ scheduler.Register(&scheduler, &cadenceCap.Base);
|
|
|
|
+ scheduler.Register(&scheduler, &bikeSpdCap.Base);
|
|
/* Pwm配置 */
|
|
/* Pwm配置 */
|
|
pwm.CntMode = SIM_PWM_UP_DOWN;
|
|
pwm.CntMode = SIM_PWM_UP_DOWN;
|
|
pwm.PwmMode = SIM_PWM_PWMMODE2;
|
|
pwm.PwmMode = SIM_PWM_PWMMODE2;
|
|
@@ -92,6 +96,9 @@ void BoardInit(double ts)
|
|
breakPin.EdgeType = GpioRisingEdge;
|
|
breakPin.EdgeType = GpioRisingEdge;
|
|
scheduler.TriggerBind(&scheduler, &breakPin.Base, GpioMainTrigger, &pwm.Base, PwmTriggerInBreak);
|
|
scheduler.TriggerBind(&scheduler, &breakPin.Base, GpioMainTrigger, &pwm.Base, PwmTriggerInBreak);
|
|
|
|
|
|
|
|
+ /* Bike Brake IO配置 */
|
|
|
|
+ bikeBrakePin.Mode = GPIO_MODE_IN;
|
|
|
|
+
|
|
/* 采样触发定时器配置 */
|
|
/* 采样触发定时器配置 */
|
|
sampleTrigTimer.CountMode = TimerCenterAlignedMode1;
|
|
sampleTrigTimer.CountMode = TimerCenterAlignedMode1;
|
|
sampleTrigTimer.CountDir = TimerCountUp;
|
|
sampleTrigTimer.CountDir = TimerCountUp;
|
|
@@ -148,15 +155,18 @@ void BoardInit(double ts)
|
|
//scheduler.InterruptBind(&scheduler, &sysTick.Base, TimerInterruptOutUIF, SystickIsr);
|
|
//scheduler.InterruptBind(&scheduler, &sysTick.Base, TimerInterruptOutUIF, SystickIsr);
|
|
|
|
|
|
/* Capture配置 */
|
|
/* Capture配置 */
|
|
- inputCap.CountMax = TICK_TRANS(HW_TIM_CLOCK_HZ / 100 / HW_CAP_TIM_HZ);
|
|
|
|
- inputCap.CounterInterruptEnable = 1;
|
|
|
|
- inputCap.Channel[2].Edge = CaptureRisingFallingEdge;
|
|
|
|
- inputCap.Channel[2].Enable = 1;
|
|
|
|
- inputCap.Channel[2].InterruptEnable = 1;
|
|
|
|
- inputCap.Channel[3].Edge = CaptureRisingEdge;
|
|
|
|
- inputCap.Channel[3].Enable = 1;
|
|
|
|
- inputCap.Channel[3].InterruptEnable = 1;
|
|
|
|
- //scheduler.InterruptBind(&scheduler, &inputCap.Base, CaptureInterruptOut1, CaptureIsr);
|
|
|
|
|
|
+ cadenceCap.CountMax = TICK_TRANS(HW_TIM_CLOCK_HZ / 100 / HW_CAP_TIM_HZ);
|
|
|
|
+ cadenceCap.CounterInterruptEnable = 1;
|
|
|
|
+ cadenceCap.Channel[2].Edge = CaptureRisingFallingEdge;
|
|
|
|
+ cadenceCap.Channel[2].Enable = 1;
|
|
|
|
+ cadenceCap.Channel[2].InterruptEnable = 1;
|
|
|
|
+
|
|
|
|
+ bikeSpdCap.CountMax = TICK_TRANS(HW_TIM_CLOCK_HZ / 100 / HW_CAP_TIM_HZ);
|
|
|
|
+ bikeSpdCap.CounterInterruptEnable = 1;
|
|
|
|
+ bikeSpdCap.Channel[3].Edge = CaptureRisingEdge;
|
|
|
|
+ bikeSpdCap.Channel[3].Enable = 1;
|
|
|
|
+ bikeSpdCap.Channel[3].InterruptEnable = 1;
|
|
|
|
+ //scheduler.InterruptBind(&scheduler, &bikeSpdCap.Base, CaptureInterruptOut1, CaptureIsr);
|
|
|
|
|
|
scheduler.AppTimeSlice.Add(&scheduler.AppTimeSlice, 1, 1, 0, BackgroundTask);
|
|
scheduler.AppTimeSlice.Add(&scheduler.AppTimeSlice, 1, 1, 0, BackgroundTask);
|
|
|
|
|