From 039fafd2c415b7dad9a6c6a4280de8726590a9b4 Mon Sep 17 00:00:00 2001 From: sdes1 Date: Mon, 10 Nov 2025 14:31:35 +0100 Subject: [PATCH] fix timer hickup --- src/APP/Aufgabe3/ps7/core0/src/ttc_timer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/APP/Aufgabe3/ps7/core0/src/ttc_timer.c b/src/APP/Aufgabe3/ps7/core0/src/ttc_timer.c index 5d75746..07a4693 100644 --- a/src/APP/Aufgabe3/ps7/core0/src/ttc_timer.c +++ b/src/APP/Aufgabe3/ps7/core0/src/ttc_timer.c @@ -33,9 +33,10 @@ extern int16_t pidValue; void timer_Task(void *pdata) { if(pidValue){ - uint16_t interval = 64;//(64000/abs(pidValue)); + uint16_t interval = (64000/abs(pidValue)); uint8_t direction = pidValue<0; //UCOS_Printf("%d %d\r\n", direction, interval); + //UCOS_Printf("counter value: %d\r\n", XTtcPs_GetCounterValue(&xttcps)); timer_Stop(1); timer_Set_Interval_Length(1,interval); timer_Start(1); @@ -106,6 +107,8 @@ static void timer_Stop(uint32_t Id){ /* * * sets new interval length and the correct matchvalue * * */ static void timer_Set_Interval_Length(uint32_t Id, uint16_t interval_length){ + if(XTtcPs_GetCounterValue(&xttcps) >= interval_length) + XTtcPs_ResetCounterValue(&xttcps); XTtcPs_SetMatchValue(&xttcps, 0, interval_length/2); XTtcPs_SetInterval(&xttcps, interval_length); }