Свежие обсуждения
Микроконтроллеры

Время установления значения порта АВР

Вопрос. Каково время установления значения порта в аврках? Поясняю.
Допустим присваиваем порту значение PORTA=0x04; делаем это в прерывании таймера. Сколько времени нужно, чтобы порт из предыдущего состояния стал 0х04?) У меня частенько не успевает, приходится nop ставить

 

После окончания команды значение уже будет установлено, т.е. чтение из PORTx даст то значение, которое было занесено. Посмотрите схЭму, например стр 66 полного даташита по ATMega128. Если вопрос относится к значениям в регистре PINx, там время установления значения зависит от типа и параметров нагрузки, и, по большому счету, к авркам никакого отношения не имеет.

 

Реальный сигнал на выходе (и значение регистра PINx) действительно имеет задержку. Она составляет от 0,5 до 1,5 такта, и "вносится узлом синхронизации...". Это особенность меги и нагрузка тут вторична.
Источник: "Микроконтроолеры AVR семейста Mega. Руководство пользователя" А.В. Естифеев. стр 326.

 

нагрузки либо нет, либо другой порт той же аврки через резиновый контакт.

спасибо за информацию. значед пропуск двух тактов будет достаточным

 

У меня при ресете идет опрос, нет ли замыкания двух ног с целью изменения режима работы. Одна нога переключается, а на второй 10 раз отслеживается изменение. Если совпало - считаем, что ноги замкнуты. Там хватало одного NOP между переключениями на такте 10МГц. Впрочем, на бОльших тактах может и два NOP лучше ставить.