NXP i.MX7D
гибкий таймер FTM
Простейший код начальной настройки модуля FTM.
@ Определить источник тактирования
MOV32 R0, CCM_BASE + TARGET_ROOT110 @ FLEXTIMER1_CLK_ROOT
MOV32 R1, 1 << ROOT_ENABLE + 2 << MUX + (1-1) << PRE_PODF + (1-1) << POST_PODF
STR R1, [R0] @ Источник: SYS_PLL_DIV4, 480/4 = 120МГц
@ Затактировать модуль
MOV32 R0, CCM_BASE + CCGR128 @ FLEXTIMER1 clock gate
MOV R1, 0x00003333
STR R1, [R0]
MOV32 R0, FTM1_BASE
MOV R1, 1 << CLKS
STR R1, [R0, FTM_SC]
MOV R1, 1 << FTMEN + 1 << WPDIS
STR R1, [R0, FTM_MODE]
Счётный регистр уже тикает.
А остальное, зависит только от вашей фантазии!