-
- А нахрена тут таймер?? Adept(549 знак., 06.08.2012 15:50)
- Ну вот что бы единицу времени получить... - sag1979(06.08.2012 15:53)
- Должна быть задача "бездействие" (инкремент переменной), которой сливается всё свободное время. По таймеру значение переменной захватывается и сбрасывается. - Юрий_СВ(25.07.2012 17:37)
- Да, но еще интересней, как потом интерпретировать (понимать) результат...(при отсутствии ОС) sag1979(388 знак., 06.08.2012 14:48)
- Должен быть анализ необходимой длительности главного цикла. Если он 1с, а действительности работает 10 мс, то загрузка 1%. Аналогично с прерываниями. - Vladimir Ljaschko(06.08.2012 14:53)
- Да, так делают в ОС ....а без ОС: Затягиваем главный цикл. Так ведь может возникнуть что-то нехорошее, когда те же задачи будут крутиться без задержки... - sag1979(06.08.2012 15:11)
- Ничего не затягиваем, просто считаем, что загрузка = t/Tх, где Tx - взятое с потолка число, в зависимости от задачи. Как в process bar :) Vladimir Ljaschko(180 знак., 06.08.2012 15:19)
- Это подсчет количества "занятых" циклов...не совсем свободного времени. - sag1979(06.08.2012 15:29)
- Что есть "свободное время" в системе с главным циклом? У белки в колесе нет свободного времени, только число оборотов в секунду. - SciFi(06.08.2012 15:32)
- Это подсчет количества "занятых" циклов...не совсем свободного времени. - sag1979(06.08.2012 15:29)
- Да не, ничего не случится. Но задерживать гл.цикл не хочется. Заводить таймер на начало и конец главного цикла - это хороший вариант. - sag1979(06.08.2012 15:16)
- У BigLoop нет конца :) Его конец это его же начало, поэтому достаточно одного таймера/переменной. - rezident(06.08.2012 15:21)
- Собственно да, я не сосчитать while(1) :)) - sag1979(06.08.2012 15:31)
- У BigLoop нет конца :) Его конец это его же начало, поэтому достаточно одного таймера/переменной. - rezident(06.08.2012 15:21)
- Ничего не затягиваем, просто считаем, что загрузка = t/Tх, где Tx - взятое с потолка число, в зависимости от задачи. Как в process bar :) Vladimir Ljaschko(180 знак., 06.08.2012 15:19)
- Да, так делают в ОС ....а без ОС: Затягиваем главный цикл. Так ведь может возникнуть что-то нехорошее, когда те же задачи будут крутиться без задержки... - sag1979(06.08.2012 15:11)
- Должен быть анализ необходимой длительности главного цикла. Если он 1с, а действительности работает 10 мс, то загрузка 1%. Аналогично с прерываниями. - Vladimir Ljaschko(06.08.2012 14:53)
- Да, но еще интересней, как потом интерпретировать (понимать) результат...(при отсутствии ОС) sag1979(388 знак., 06.08.2012 14:48)
- :) - Vit(25.07.2012 10:30, ссылка)
- НЕточно и медленно - sag1979(25.07.2012 10:51)
- Хотя, дает наглядную картинку.....в отличие от простого подсчета свободного времени - это плюс. - sag1979(25.07.2012 10:52)
- НЕточно и медленно - sag1979(25.07.2012 10:51)
- Зачем таймер? Выполняешь задачу - "1" на пин. Лёг спать - "0" на пин. Дальше дело техники заинтегрировать - Shura(25.07.2012 10:15)
- Очень некрасиво. Пин долго переключается ибо через шины управляется. Лучше таймер и инкремент переменной внутри главного цикла..хочется конкретики... - sag1979(25.07.2012 10:45)
- Тебе с точностью до такта что-ли надо знать? - Shura(25.07.2012 10:54)
- В идеале - да ) На счет инкремента переменной в главном цикле мысли есть? - sag1979(25.07.2012 11:06)
- В Кортексах, например, System Timer (SysTick) имеется. Берете разницу его двух отсчетов и получаете интервал с точностью до такта. - rezident(25.07.2012 18:26, ссылка)
- Можно для этих же целей в Cortex-M3 DWT использовать. - Apтём(06.08.2012 15:01)
- Если можно, поясните. Не понял идею. Таймеры и сис-таймеры все знаю. - sag1979(06.08.2012 14:52)
- В конце или начале BigLoop стоит команда - сохранение значения SysTick во временную переменную. Берете беззнаковую разницу между предыдущим значением этой переменной и текущим значением SysTick и получаете длительность выполнения BigLoop. rezident(210 знак., 06.08.2012 14:59)
- Собственно, да. Важна именно эта информация...так и будем считать прямо...остается рассмотреть прерывания... - sag1979(06.08.2012 15:06)
- Таймер SysTick аппаратный и встроен прямо в ядро Cortex, поэтому его содержимое доступно для любой части программы или функции обработчика прерывания. - rezident(06.08.2012 15:24)
- Понятно. Можно так же считать. Я хотел одним числом выразить - но это было бы слишком просто. - sag1979(06.08.2012 15:38)
- Таймер SysTick аппаратный и встроен прямо в ядро Cortex, поэтому его содержимое доступно для любой части программы или функции обработчика прерывания. - rezident(06.08.2012 15:24)
- Собственно, да. Важна именно эта информация...так и будем считать прямо...остается рассмотреть прерывания... - sag1979(06.08.2012 15:06)
- В конце или начале BigLoop стоит команда - сохранение значения SysTick во временную переменную. Берете беззнаковую разницу между предыдущим значением этой переменной и текущим значением SysTick и получаете длительность выполнения BigLoop. rezident(210 знак., 06.08.2012 14:59)
- В Кортексах, например, System Timer (SysTick) имеется. Берете разницу его двух отсчетов и получаете интервал с точностью до такта. - rezident(25.07.2012 18:26, ссылка)
- В идеале - да ) На счет инкремента переменной в главном цикле мысли есть? - sag1979(25.07.2012 11:06)
- Тебе с точностью до такта что-ли надо знать? - Shura(25.07.2012 10:54)
- Очень некрасиво. Пин долго переключается ибо через шины управляется. Лучше таймер и инкремент переменной внутри главного цикла..хочется конкретики... - sag1979(25.07.2012 10:45)
- А нахрена тут таймер?? Adept(549 знак., 06.08.2012 15:50)