-
- 2) При выводе данных ваши данные могут не успеть добраться до вывода и вы читаете прошлое значение с порта - Что то новенькое , это каким транспортом данные добираются что могут не успеть? - m16_home(15.03.2019 11:26)
- Речь про конвейер процессора. - fk0(15.03.2019 12:54)
- В даташите есть диаграмма таймингов работы пинов, там действительно или 1 или 2 cpu-clk происходит процесс коммутации пинов. - Тигр(15.03.2019 12:07)
- Унутренним, #@$, конвейером! Уже перетирали про эту мелкую пакость в ряде новых AVR и TINY. В том числе MBedder писал. Т.е. командами ASM подряд выводим "1" и "0" и получаем полное отсутствие импульсов на порту. De_User(130 знак., 15.03.2019 11:31 - 11:35)
- Эта фигня была замечена только на тыньках , со свежими мегами было всё ОК на тот момент. Вот дискуссия на телесиськах --> - m16_home(15.03.2019 15:18, ссылка, ссылка)
- В описании команд для вывода регистра в PORT требуется 1 такт. ЕМНИП, "ногодрыганьем" на "новой" ATmega88 удалось гарантировано переключать только с интервалом в 3 (три) такта. De_User(750 знак., 15.03.2019 15:32 - 15:51, ссылка)
- Это давно известный эффект R-M-W (Read-Modify-Write), проявляющийся при записи в ОТДЕЛЬНЫЙ(Е) БИТ(Ы), но не в весь порт. Аналогичное происходит и в PIC'ах - недаром в новых устроили отдельные регистры PORTx (вх) и LATx (вых) - MBedder(15.03.2019 15:42)
- правильно, эту фишку я знаю в AT90Sxxxx такой хни не было , но тут спич о записать-прочесть. - m16_home(15.03.2019 11:54)
- Задержка вывода была еще в древних AVR поэтому NOPы нужны и там, но новый внутренний конвейер еще и "интеллектуален" он дополнительно "срезает углы" выбрасывая последовательные установку/сброс битов. - Boвa(15.03.2019 11:42 - 11:45)
- Эта фигня была замечена только на тыньках , со свежими мегами было всё ОК на тот момент. Вот дискуссия на телесиськах --> - m16_home(15.03.2019 15:18, ссылка, ссылка)
- По п.2 в некоторых AVR даже два NOP нужны, иначе "данные могут не успеть добраться до вывода и читается прошлое значение порта" - De_User(15.03.2019 11:02)
- Если линия нагружена на относительно большую емкость, то данные доберутся только к третьему (а то и к десятому) NOP, а если закорочена на землю то возможно и никогда не доберутся. - Boвa(15.03.2019 11:06 - 11:09)
- Согласен! ЕМНИП эффект был замечен при тактовой частоте 20 МГц, так что ёмкость запросто может влиять. - De_User(15.03.2019 11:08)
- Если линия нагружена на относительно большую емкость, то данные доберутся только к третьему (а то и к десятому) NOP, а если закорочена на землю то возможно и никогда не доберутся. - Boвa(15.03.2019 11:06 - 11:09)
- 2) При выводе данных ваши данные могут не успеть добраться до вывода и вы читаете прошлое значение с порта - Что то новенькое , это каким транспортом данные добираются что могут не успеть? - m16_home(15.03.2019 11:26)