Кто любит RISC в жизни, заходим, не стесняемся.
Сб авг 11, 2018 22:43:14
Не устраивает что? Практически все Оси имеют системный таймер на 1mS . Если нужны интервалы меньше, вменяемо юзать аппаратные решения а не задержки процессорного времени.
Вс авг 12, 2018 06:06:28
Разберусь - скажу что не устраивает.
Вс авг 12, 2018 12:30:51
А кто-нибудь использует этот SysTick в мирных целях? Мне он всегда казался страшно неудобным, отчего я так его ни разу и не попользовал.
Вс авг 12, 2018 13:50:28
я использую для нетребовательных вещей флаги выставлять - динамическую индикацию переключать, пакеты modbus-а обрабатывать, антидребезг, такое вот все.
Вс авг 12, 2018 15:16:57
А кто-нибудь использует этот SysTick в мирных целях? Мне он всегда казался страшно неудобным, отчего я так его ни разу и не попользовал.
То есть тут я, похоже, не дурак. Это лыжи не едут.... Блин, ну хоть что-то хорошее...
Добавлено after 1 minute 2 seconds:Я-то думаю, почему я его не могу подогнать под себя.
Добавлено after 1 minute 37 seconds:ау ARV
ку-ку, досикус.
Вс авг 12, 2018 15:25:27
khch, systick изначально задумывался как источник этих самых тиков для RTOS. Он является частью ядра контроллера, а не "периферии". А RTOS использует этот таймер "в тёмную" и многих мало интересует, что там происходит.
Вс авг 12, 2018 15:27:07
Я-то думаю, почему я его не могу подогнать под себя
а что там "подгонять"? Это самый тупой из возможных таймеров. Единственное, что он умеет - выдавать прерывание раз в n-цать тактов.
Вс авг 12, 2018 15:31:33
Я посмотрел в HAL_Delay, там был этот систик. Може я что-то упустил - это характерно.
как я понимаю, мне надо изучать таймеры? Мне нужны микросекундные интервалы. Сейчас я этим и занят.
Вс авг 12, 2018 15:37:14
Да, таймеры. Их там несколько разновидностей (по количеству функционала). Самые продвинутые так и называются Advanced timers. В зависимости от контроллера их может быть до двух, это TIM1, TIM8. Ими можно и импульсы микросекундные захватывать и трехфазные моторы крутить, плюс аппаратно объединять их.
Вс авг 12, 2018 15:51:39
Если мой таймер сидит на шине с частотой 32,000,000, значит на одну микросекунду мне надо записать в регистр ARR число 32. Я правильно считаю??
Оставим в сторону точность работы кварца.
Вс авг 12, 2018 15:53:56
khch писал(а):Я-то думаю, почему я его не могу подогнать под себя.
Системный таймер самый простой. Про другие прочитайте.
http://robocraft.ru/blog/ARM/722.htmlhttp://robocraft.ru/blog/ARM/739.htmlkhch писал(а):мне надо изучать таймеры? Мне нужны микросекундные интервалы.
Для этого не обязательно использовать таймер.
По аналогии с кодом выше.
https://radiokot.ru/forum/viewtopic.php ... 7#p3435257- Код:
void DWT_Delay_us(uint32_t us)
{
uint32_t Count = DWT->CYCCNT;
us = us * (SystemCoreClock / 1000000);
while((DWT->CYCCNT - Count) < us);
}
khch писал(а):Если мой таймер сидит на шине с частотой 32,000,000, значит на одну микросекунду мне надо записать в регистр ARR число 32. Я правильно считаю??
32-1, т. е. 31.
Последний раз редактировалось
Мурик Вс авг 12, 2018 15:57:10, всего редактировалось 8 раз(а).
Вс авг 12, 2018 15:54:29
32 - 1
Вс авг 12, 2018 16:00:17
Системный таймер самый простой. Про другие прочитайте.
Да я уже с переменным успехом с утра .....
Добавлено after 1 minute 5 seconds:void mcsDelay (uint32_t time_in_mcsec)
{
TIM_TypeDef * Timer;
uint16_t diviser = time_in_mcsec*(32-1);
Timer->ARR=diviser;
}
Как-то так....
Добавлено after 4 minutes 2 seconds:32 - 1
Ну да... Он же и нуль считает.
Мне, почему-то, кажется, что 31,,,32 небольшая разница будет.
При погрешности кварца в десять миллионых номинала это уже 3.
Вс авг 12, 2018 16:00:35
На что указывает TIM_TypeDef * Timer;?
Прога в HardFault улетит.
Вс авг 12, 2018 16:03:10
Все таймеры уже определены глобально. Не надо их внутри функции переопределять. Берите и пользуйте.
TIM1->ARR = xxx;
Вс авг 12, 2018 16:06:39
На что указывает TIM_TypeDef * Timer;?
Прога в HardFault улетит.
Я не знаю что такое HardFault, но то, что я сделал - неправильно...
да!!! Это должен быть
#define TIM1 ((TIM_TypeDef *)TIM1_BASE)
Надо же.... я учусь
Вс авг 12, 2018 16:08:16
Почему вы не хотите подключить заголовочные файлы, где это уже определено?
Вс авг 12, 2018 16:09:20
Понимаю, выглядело глупо... Теперь сам понял.
Добавлено after 51 second:Почему вы не хотите подключить заголовочные файлы, где это уже определено?
Да все там подключено.
Просто я сделал по-своему, а вышло как обычно
Вс авг 12, 2018 16:20:32
khch писал(а):Я не знаю что такое HardFault
http://infocenter.arm.com/help/index.js ... 12s01.htmlОб одной из причин попадания программы в обработчик HardFault.
http://purebasic.mybb.ru/viewtopic.php?id=564#p7599
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.