Ich habe ein großes Problem. Ich weiß nicht, wie ich einen Timer mit einer Taste stoppen und den Timer mit einer anderen Taste neu starten kann.Wie kann ich einen Timer auf STM32 starten und stoppen?
Dies ist der Code, den ich für sie so weit:
Dieser Code ist der Interrupt-Handler für die Schaltfläche, die den Timer zu starten. Ich dachte, dass es möglich ist, indem man den Timer aktiviert, der so weit funktioniert.
void EXTI0_1_IRQHandler(void)
{
if ((EXTI->PR & EXTI_PR_PR1) == EXTI_PR_PR1) /* Check line 1 has triggered the IT */
{
EXTI->PR = EXTI_PR_PR1; /* Clear the pending bit */
NVIC_EnableIRQ(TIM7_IRQn);
}
}
Dieser Code ist der Interrupt-Handler für die Schaltfläche, die die thimer stoppen. Dieser Codeabschnitt funktioniert nicht und der Timer bleibt eingeschaltet.
void EXTI4_15_IRQHandler(void)
{
if ((EXTI->PR & EXTI_PR_PR4) == EXTI_PR_PR4) /* Check line 1 has triggered the IT */
{
EXTI->PR = EXTI_PR_PR4; /* Clear the pending bit */
NVIC_DisableIRQ(TIM7_IRQn);
}
}
Hat Anoyne ein paar Tipps oder wissen, wie es sein muss?
ich kann sehen, wo Sie aktivieren/deaktivieren Sie das Timer-Interrupt, aber ich kann eigentlich keinen Timerstart sehen/überhaupt stoppen? –