-
- Я тоже ходил вокруг таймеров, но остановился на программной задержке. Для STM32F100 - наиболее миниатюрный и точный (на малых задержках) вариант. - Юрий_СВ(29.02.2012 16:02)
- Проводил мини НИР на тему программной задержки. Здорово зависит от уровня оптимизации и выполняется из ОЗУ или из Flash-а и настроек Flash-а. При смене версии компилятора может поплыть. - Chum_A(29.02.2012 16:29)
- Чтобы не зависело от уровня оптимизации надо использовать volatile. - Михаил Е.(29.02.2012 17:56)
- Куда вписать, моя программная задержка выглядит вот так, по asm-овскому листингу подбивал минимум накладных: Chum_A(72 знак., 29.02.2012 18:00)
- Например Михаил Е.(83 знак., 29.02.2012 19:01)
- Я "ни разу не" эксперт по С, но ИМХО в таком виде бессмысленно. Знающие товарищи поправят. - Chum_A(29.02.2012 19:44)
- Например Михаил Е.(83 знак., 29.02.2012 19:01)
- Куда вписать, моя программная задержка выглядит вот так, по asm-овскому листингу подбивал минимум накладных: Chum_A(72 знак., 29.02.2012 18:00)
- Чтобы не зависело от уровня оптимизации и версии (и производителя) компилятора - пишу функцию на Асм. От выполнения из ОЗУ/ПЗУ тоже зависеть не должна. Юрий_СВ(340 знак., 29.02.2012 17:16)
- А про asm это идея, тем более мне нужен код принципиально исполняемый из ОЗУ. - Chum_A(29.02.2012 17:37)
- Вот как это делается (общая идея, так сказать) -> SciFi(168 знак., 29.02.2012 17:45, ссылка)
- А чем обеспечивается выравнивание (по границам слов/полуслов) ? Юрий_СВ(65 знак., 29.02.2012 19:01)
- Ну... вАААЩе! "Программирование с огоньком" (с) ещё живо! - Chum_A(29.02.2012 17:57)
- Всё украдено до нас. Это я подсмотрел у OpenOCD (см. ниже строки 600) -> - SciFi(29.02.2012 18:09, ссылка)
- Вот как это делается (общая идея, так сказать) -> SciFi(168 знак., 29.02.2012 17:45, ссылка)
- А про asm это идея, тем более мне нужен код принципиально исполняемый из ОЗУ. - Chum_A(29.02.2012 17:37)
- Чтобы не зависело от уровня оптимизации надо использовать volatile. - Михаил Е.(29.02.2012 17:56)
- Проводил мини НИР на тему программной задержки. Здорово зависит от уровня оптимизации и выполняется из ОЗУ или из Flash-а и настроек Flash-а. При смене версии компилятора может поплыть. - Chum_A(29.02.2012 16:29)
- Ну.. Cepгeй Бopщ(403 знак., 29.02.2012 11:43, ссылка)
- О! Про сдвиг-то я и не подумал, спасибо за идею. Делал по старинке: SciFi(227 знак., 29.02.2012 17:03)
- Спасибо. Мне кажется, что по п.2, пройдёт, если таймер считает "на все 24 бита", а не в режиме перезагрузки из SysTick->LOAD. Или нет?(с). DWT, если я правильно понимаю, это (опциональный) счётчик из модуля отладки, придётся трясти разработчиков, Chum_A(45 знак., 29.02.2012 13:23)
- Да, если "на все 24 бита". DWT вроде бы такая же часть ядра Cortex-M3 как и SysTick. - Cepгeй Бopщ(29.02.2012 16:46)
- Мой разработчик пока молчит, но в "Cortex-M3 Technical Reference Manual R2P0" написано "The DWT is an optional unit that performs the following debug functionality". - Chum_A(29.02.2012 17:31)
- В STM32, к примеру, есть. Если хотите написать супер-пупер-библиотеку-работающую-всегда-и-везде, то так и скажите. - SciFi(29.02.2012 17:37)
- Вот ну совсем не хочу, просто у меня не шибко ходовой Cortex. - Chum_A(29.02.2012 17:41)
- В STM32, к примеру, есть. Если хотите написать супер-пупер-библиотеку-работающую-всегда-и-везде, то так и скажите. - SciFi(29.02.2012 17:37)
- Мой разработчик пока молчит, но в "Cortex-M3 Technical Reference Manual R2P0" написано "The DWT is an optional unit that performs the following debug functionality". - Chum_A(29.02.2012 17:31)
- Да, если "на все 24 бита". DWT вроде бы такая же часть ядра Cortex-M3 как и SysTick. - Cepгeй Бopщ(29.02.2012 16:46)
- Я тоже ходил вокруг таймеров, но остановился на программной задержке. Для STM32F100 - наиболее миниатюрный и точный (на малых задержках) вариант. - Юрий_СВ(29.02.2012 16:02)