Advertisement
teplofizik

main.s (basic timer)

Oct 1st, 2012
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Пример работы с таймером
  2. ; http://teplofizik.diary.ru/p181188784.htm
  3. ; STM32F4-Discovery
  4.  
  5.     ; Проверять выравнивание стека (8 байт)
  6.     PRESERVE8
  7.    
  8.     AREA    |.text|, CODE, READONLY
  9.     GET stm32f4xx.inc
  10.  
  11.             EXPORT SystemInit
  12. SystemInit  PROC
  13.             ; Возврат
  14.             BX    LR
  15.             ENDP
  16.            
  17.             EXPORT __main
  18. __main      PROC
  19.  
  20.             ; Загружаем базовое смещение регистра настройки тактирования
  21.             MOV32 R0, RCC_APB1ENR
  22.            
  23.             ; Установить флаг разрешения тактирования таймера 6
  24.             LDR   R1, [R0]
  25.             ORR   R1, #RCC_APB1ENR_TIM6EN
  26.             STR   R1, [R0]
  27.            
  28.             ; Загружаем базовое смещение таймера 6
  29.             MOV32 R0, TIMER6_BASE
  30.            
  31.             ; Записываем, до скольки считать
  32.             MOV32 R1, 0x8000         ; Числа от балды
  33.             STR   R1, [R0, #TIM_ARR_OFFSET]
  34.            
  35.             ; Настраиваем предделитель таймера
  36.             MOV32 R1, 0x0100         ; Числа от балды
  37.             STR   R1, [R0, #TIM_PSC_OFFSET]
  38.            
  39.             ; Включаем таймер TIM6
  40.             MOV   R1, #TIM_CR1_CEN   ; Разрешить счёт
  41.             STR   R1, [R0, #TIM_CR1_OFFSET]
  42.  
  43. __mainloop  ; Вечный цикл
  44.             ; Прочитаем состояние счётчика
  45.             LDR   R1, [R0, #TIM_CNT_OFFSET]
  46.            
  47.             ; Новый круг~
  48.             B __mainloop
  49.  
  50.             ENDP
  51.     END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement