systick.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // ***********************************************************
  2. // systick.h
  3. // Модуль создан на основе кода teplofizik, 2013
  4. // ***********************************************************
  5. #ifndef __SYSTICK_H
  6. #define __SYSTICK_H
  7. #define TIMER_HANDLERS 10 // Максимально количество обработчкиков
  8. void SYSTICK_SetDelayFlag();
  9. uint8_t Delay_ms(__IO uint32_t nTime);
  10. void TimingDelay_Decrement(void);
  11. typedef void (*TTimerHandler)();
  12. // Запуск таймера с заданной частотой
  13. void timer_Init(uint32_t Frequency);
  14. // Добавить функцию в список вызова. Handler будет вызываться с заданной частотой
  15. // Аргументы: 2
  16. // Frequency - частота вызова (при увеличении снижается точность)
  17. // Handler - функция которая будет вызваться
  18. // Результат: нет
  19. void timer_AddFunction(uint16_t Frequency, TTimerHandler Handler);
  20. // Остановить таймер
  21. void timer_Stop(TTimerHandler Handler);
  22. // Включить таймер. Задача будет включена с места остановки
  23. void timer_Resume(TTimerHandler Handler);
  24. // Перезапустить таймер
  25. void timer_Restart(TTimerHandler Handler);
  26. // Перезапустить таймер. Задача будет выполненна сразу
  27. void timer_RestartAtOnce(TTimerHandler Handler);
  28. // Изменить частоту таймера
  29. void timer_ChangeFrequency(TTimerHandler Handler, uint16_t Frequency);
  30. // Главный цикл. в нем вызваются обработчики таймера
  31. void timer_Main(void);
  32. uint32_t clock_GetSYS(void);
  33. #endif