Столкнулся с необъяснимой проблемой :)
Есть ПИК "А" - будем считать его эталоном :) Работает с портом на 9600.
Есть ПИК "Б" - Работает на 16 МГц от кварца, с портом работает на 9600.
Есть ПИК "С" - Работает от внутреннего генератора на 8 МГц, и только слушает порт на 9600.
ПИК А и Б между собой обмениваются данными, ПИК Б посылает команды ПИКу С. Все отлично.
Теперь пришлось ПИК Б перевести на 8 МГц, на внутренний генератор. Изменил настройки ПИКа на новую скорость... И начались чудеса.
Проц Б с процем А обмениваются туго, много потерянных пакетов. Иногда успешный пакет ждать приходится по 5 секунд! А проц С вообще перестал слышать проц Б.
В протеусе все работает отлично.
Теперь, в протеусе, создаю проэкт только с процем С. И через ком порт подключаю реальный проц "Б". В симуляторе все работает. Команды с реального проца Б прекрасно ловит проц С в протеусе.
Почему в живую проц С не слышит проц Б, и почему стало хуже обмен с процем А?
В программе отключил все лишние прерывания, пробовал отключать приемник у проца Б, и только слать команды процу С. Ничего :(
С настройками скорости портов все верно.
Одно что прходит на ум, может ли погрешность встроенных генераторов быть насколько большой, что синхронно не работают порты?