Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
03.01.2007, 18:44
|
#1
|
Временная регистрация
Регистрация: 13.11.2006
Сообщений: 61
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Обязательно мне как разработчику знать....?
Необходимо ли знать, время исполнения (выполнения микроконтроллером) программы или же одной её команды?
Как я в книге для наших отечественных микроконтр-ов прочёл t исп.=Nт * T , где Nт-число тактов необходимых для выполнения команд, T-длительность тактового периода измер в микросекундах.
Так например для микроконтроллера с тактовой частотой 10МГц -длительность будет T=0,1(мкс) Да и где взять информацию- какую команду за какое количество тактов выполняет ATmega 8515L? У меня есть таблица всех команд ATmega8515L и в столбце #clocks есть цифры для каждой команды (без ед измеренй) Это и есть число тактов?
|
|
|
|
03.01.2007, 18:58
|
#2
|
Почётный гражданин KAZUS.RU
Регистрация: 07.03.2005
Сообщений: 1,056
Сказал спасибо: 1
Сказали Спасибо 250 раз(а) в 174 сообщении(ях)
|
Надо взять даташит производителя на интересующий Вас контроллер и внимательно изучить соответствующий раздел. Там все должно быть четко написано. Тем более если Вы позиционируете себя как разработчика, а не как хоббиста-любителя.
Если Вас интересует время выполнения той или иной ветви программы, пользуйтесь отладочными средствами - симулятором, ICD или ICE (что есть под руками). В этих средствах такие возможности как правило есть.
|
|
|
|
04.01.2007, 00:17
|
#3
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
avr123.nm.ru/02.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
04.01.2007, 01:00
|
#4
|
Почётный гражданин KAZUS.RU
Регистрация: 30.10.2006
Сообщений: 1,755
Сказал спасибо: 0
Сказали Спасибо 80 раз(а) в 56 сообщении(ях)
|
Re: Обязательно мне как разработчику знать....?
Сообщение от zhan99999
|
Необходимо ли знать, время исполнения (выполнения микроконтроллером) программы или же одной её команды?
Как я в книге для наших отечественных микроконтр-ов прочёл t исп.=Nт * T , где Nт-число тактов необходимых для выполнения команд, T-длительность тактового периода измер в микросекундах.
Так например для микроконтроллера с тактовой частотой 10МГц -длительность будет T=0,1(мкс) Да и где взять информацию- какую команду за какое количество тактов выполняет ATmega 8515L? У меня есть таблица всех команд ATmega8515L и в столбце #clocks есть цифры для каждой команды (без ед измеренй) Это и есть число тактов?
|
Все зависит от приложения где используется микроконтроллер. Дело в том, что за время исполнения команды, состояние того или иного объекта управления может изменится. Если изменение параметров объекта управления соизменимо с временим выполнения программы или команды, то в некоторых случаях, для корректной работы время выполнения необходимо учитывать.
Приведем два примера.
1. Вы разработчик новогодней елочной гирлянды, реализующей различные спец эффекты. В этом случае время выполнение программы не имеет никакого значения, поскольку время переключения светодиодов существенно больше времени выполнения, и даже если переключения будут отличаться на время выполнения различных частей программы (разная длинна кода-разное время выполнения), то конечный пользователь этого никогда не заметит.
2. Вы реализуете некоторый программный модуль определяющий частоту вращения двигателя внутреннего сгорания легкогого автомобиля, и эта информация используется для определения задержки момента искрообразования в цилиндрах двигателя. В этом случае для вычисления частоты вращения необходимо выполнить определенный набор операций. При этом вращение двигателя не прекращается. После вычесления частоты вращения, реализуется вычисление необходимой задержки момента искрообразования, т.е. некоторой величины, необходимой для оптимальной работы двигателя на данном режиме. Двигатель продолжает вращатся. В конечном итоге вы получили расчетное значение необходимой задержки, но должны внести в систему не его, а это значение уменьшенное на величину времени, затраченного на все проведенные вычисления, поскольку двигатель продолжал свое вращение пока микроконтроллер обрабатывал информацию. Если Вы внесете полученные данные без поправки, то автомобиль попросту потеряет мощность на данном режиме.
Таким образом, необходимость учета времени выполнения определяется конкретным приложением.
В описании микроконтроллера будет подробно описано время выполнения каждой операции либо в количествах тактов либо в так называемых "Машинных циклах", либо в иных относительных единицах времени. При этом будет сказано, что один МЦ равен, например, 12 тактам.
С уважением, Алексей.
|
|
|
|
04.01.2007, 19:59
|
#5
|
Прохожий
Регистрация: 11.11.2006
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Обязательно мне как разработчику знать....?
Сообщение от zhan99999
|
Да и где взять информацию- какую команду за какое количество тактов выполняет ATmega 8515L? У меня есть таблица всех команд ATmega8515L и в столбце #clocks есть цифры для каждой команды (без ед измеренй) Это и есть число тактов?
|
Да, это и есть число тактов на команду. Оно в обязательном порядке указывается в документации на микроконтроллер. Так как ATmega - микроконтроллер с RISC-архитектурой, то большинство инструкций в нем выполняются за 1 такт. Единицы измерений для тактов, естественно, не указываются, так как время исполнения одного такта зависит от частоты генератора. Например, если в ATmega работает встроенный генератор на 1 МГц, то один такт будет выполняться за 1 мксек, если же использовать в качестве генератора кварц на 16МГц, то такт будет выполняться за 1/16 мксек. И так далее...
|
|
|
|
04.01.2007, 21:53
|
#6
|
Временная регистрация
Регистрация: 13.11.2006
Сообщений: 61
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Теперь ясно! Всем Thanks..
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:52.
|
|