Ср мар 29, 2023 12:14:30
HAL_TIM_PeriodElapsedCallback:
08000830: push {r7, lr}
08000832: sub sp, #16
08000834: add r7, sp, #0
08000836: str r0, [r7, #4]
289 uint32_t i = 0, f = 0;
08000838: movs r3, #0
0800083a: str r3, [r7, #12]
0800083c: movs r3, #0
0800083e: str r3, [r7, #8]
290 if (htim->Instance == TIM4)
08000840: ldr r3, [r7, #4]
08000842: ldr r3, [r3, #0]
08000844: ldr r2, [pc, #108] ; (0x80008b4 <HAL_TIM_PeriodElapsedCallback+132>)
08000846: cmp r3, r2
08000848: beq.n 0x8000898 <HAL_TIM_PeriodElapsedCallback+104>
293 else if (htim->Instance == TIM1)
0800084a: ldr r3, [r7, #4]
0800084c: ldr r3, [r3, #0]
0800084e: ldr r2, [pc, #104] ; (0x80008b8 <HAL_TIM_PeriodElapsedCallback+136>)
08000850: cmp r3, r2
08000852: bne.n 0x8000898 <HAL_TIM_PeriodElapsedCallback+104>
295 HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_5);
08000854: movs r1, #32
08000856: ldr r0, [pc, #100] ; (0x80008bc <HAL_TIM_PeriodElapsedCallback+140>)
08000858: bl 0x800115a <HAL_GPIO_TogglePin>
297 __HAL_TIM_SET_COUNTER(&htim4, 0);
0800085c: ldr r3, [pc, #96] ; (0x80008c0 <HAL_TIM_PeriodElapsedCallback+144>)
0800085e: ldr r3, [r3, #0]
08000860: movs r2, #0
08000862: str r2, [r3, #36] ; 0x24
300 while(((__HAL_TIM_GET_COUNTER(htim) < 8) && (f < 20) )) //
08000864: b.n 0x8000888 <HAL_TIM_PeriodElapsedCallback+88>
307 if(htim->Instance->CNT != last)
08000866: ldr r3, [r7, #4]
08000868: ldr r3, [r3, #0]
0800086a: ldr r2, [r3, #36] ; 0x24
0800086c: ldr r3, [pc, #84] ; (0x80008c4 <HAL_TIM_PeriodElapsedCallback+148>)
0800086e: ldr r3, [r3, #0]
08000870: cmp r2, r3
08000872: beq.n 0x8000888 <HAL_TIM_PeriodElapsedCallback+88>
309 HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_9);
08000874: mov.w r1, #512 ; 0x200
08000878: ldr r0, [pc, #64] ; (0x80008bc <HAL_TIM_PeriodElapsedCallback+140>)
0800087a: bl 0x800115a <HAL_GPIO_TogglePin>
310 last = htim->Instance->CNT;
0800087e: ldr r3, [r7, #4]
08000880: ldr r3, [r3, #0]
08000882: ldr r3, [r3, #36] ; 0x24
08000884: ldr r2, [pc, #60] ; (0x80008c4 <HAL_TIM_PeriodElapsedCallback+148>)
08000886: str r3, [r2, #0]
300 while(((__HAL_TIM_GET_COUNTER(htim) < 8) && (f < 20) )) //
08000888: ldr r3, [r7, #4]
0800088a: ldr r3, [r3, #0]
0800088c: ldr r3, [r3, #36] ; 0x24
0800088e: cmp r3, #7
08000890: bhi.n 0x8000898 <HAL_TIM_PeriodElapsedCallback+104>
08000892: ldr r3, [r7, #8]
08000894: cmp r3, #19
08000896: bls.n 0x8000866 <HAL_TIM_PeriodElapsedCallback+54>
316 i = 5;
08000898: movs r3, #5
0800089a: str r3, [r7, #12]
317 f = 0;
0800089c: movs r3, #0
0800089e: str r3, [r7, #8]
318 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5|GPIO_PIN_9, GPIO_PIN_RESET);
080008a0: movs r2, #0
080008a2: mov.w r1, #544 ; 0x220
080008a6: ldr r0, [pc, #20] ; (0x80008bc <HAL_TIM_PeriodElapsedCallback+140>)
080008a8: bl 0x8001128 <HAL_GPIO_WritePin>
319 }
HAL_TIM_PeriodElapsedCallback:
08000830: push {r7, lr}
08000832: sub sp, #16
08000834: add r7, sp, #0
08000836: str r0, [r7, #4]
289 uint32_t i = 0, f = 0;
08000838: movs r3, #0
0800083a: str r3, [r7, #12]
0800083c: movs r3, #0
0800083e: str r3, [r7, #8]
290 if (htim->Instance == TIM4)
08000840: ldr r3, [r7, #4]
08000842: ldr r3, [r3, #0]
08000844: ldr r2, [pc, #120] ; (0x80008c0 <HAL_TIM_PeriodElapsedCallback+144>)
08000846: cmp r3, r2
08000848: beq.n 0x80008a4 <HAL_TIM_PeriodElapsedCallback+116>
293 else if (htim->Instance == TIM1)
0800084a: ldr r3, [r7, #4]
0800084c: ldr r3, [r3, #0]
0800084e: ldr r2, [pc, #116] ; (0x80008c4 <HAL_TIM_PeriodElapsedCallback+148>)
08000850: cmp r3, r2
08000852: bne.n 0x80008a4 <HAL_TIM_PeriodElapsedCallback+116>
295 HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_5);
08000854: movs r1, #32
08000856: ldr r0, [pc, #112] ; (0x80008c8 <HAL_TIM_PeriodElapsedCallback+152>)
08000858: bl 0x8001166 <HAL_GPIO_TogglePin>
297 __HAL_TIM_SET_COUNTER(&htim4, 0);
0800085c: ldr r3, [pc, #108] ; (0x80008cc <HAL_TIM_PeriodElapsedCallback+156>)
0800085e: ldr r3, [r3, #0]
08000860: movs r2, #0
08000862: str r2, [r3, #36] ; 0x24
300 while(((__HAL_TIM_GET_COUNTER(htim) < 8) && (f < 20) )) //
08000864: b.n 0x8000894 <HAL_TIM_PeriodElapsedCallback+100>
305 f++;
08000866: ldr r3, [r7, #8]
08000868: adds r3, #1
0800086a: str r3, [r7, #8]
306 i++;
0800086c: ldr r3, [r7, #12]
0800086e: adds r3, #1
08000870: str r3, [r7, #12]
307 if(htim->Instance->CNT != last)
08000872: ldr r3, [r7, #4]
08000874: ldr r3, [r3, #0]
08000876: ldr r2, [r3, #36] ; 0x24
08000878: ldr r3, [pc, #84] ; (0x80008d0 <HAL_TIM_PeriodElapsedCallback+160>)
0800087a: ldr r3, [r3, #0]
0800087c: cmp r2, r3
0800087e: beq.n 0x8000894 <HAL_TIM_PeriodElapsedCallback+100>
309 HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_9);
08000880: mov.w r1, #512 ; 0x200
08000884: ldr r0, [pc, #64] ; (0x80008c8 <HAL_TIM_PeriodElapsedCallback+152>)
08000886: bl 0x8001166 <HAL_GPIO_TogglePin>
310 last = htim->Instance->CNT;
0800088a: ldr r3, [r7, #4]
0800088c: ldr r3, [r3, #0]
0800088e: ldr r3, [r3, #36] ; 0x24
08000890: ldr r2, [pc, #60] ; (0x80008d0 <HAL_TIM_PeriodElapsedCallback+160>)
08000892: str r3, [r2, #0]
300 while(((__HAL_TIM_GET_COUNTER(htim) < 8) && (f < 20) )) //
08000894: ldr r3, [r7, #4]
08000896: ldr r3, [r3, #0]
08000898: ldr r3, [r3, #36] ; 0x24
0800089a: cmp r3, #7
0800089c: bhi.n 0x80008a4 <HAL_TIM_PeriodElapsedCallback+116>
0800089e: ldr r3, [r7, #8]
080008a0: cmp r3, #19
080008a2: bls.n 0x8000866 <HAL_TIM_PeriodElapsedCallback+54>
316 i = 5;
080008a4: movs r3, #5
080008a6: str r3, [r7, #12]
317 f = 0;
080008a8: movs r3, #0
080008aa: str r3, [r7, #8]
318 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5|GPIO_PIN_9, GPIO_PIN_RESET);
080008ac: movs r2, #0
080008ae: mov.w r1, #544 ; 0x220
080008b2: ldr r0, [pc, #20] ; (0x80008c8 <HAL_TIM_PeriodElapsedCallback+152>)
080008b4: bl 0x8001134 <HAL_GPIO_WritePin>
319 }
Если не работает, то либо счётчик не тикает, либо читается не тот счётчик.
Ср мар 29, 2023 16:14:41