Посмотрел как ведёт себя ПЛК при обращении с регистром "счётчика команд" -- врагу не пожелаешь.
В точности воспроизвести в эмуляторе пока не смог, но приближаюсь.
Доработанный эмулятор стал показывать, что при уставке 500 кГц на выходе 495050 (т.е. похоже на то, что наблюдалось на реальном ПЛК -- там было 495126).
Поправил программу -- теперь частота уж совсем хорошая должна быть.
Кстати, по поводу генерации частоты: сейчас длина каждого импульса одинаковая. Т.е. на высоких частотах (напр. 200кГц) длина периода это где-то 1000 тактов. 1001 такт это уже 199800Гц. Возможно, на больших частотах стоит какого-нибудь брезенхема прикрутить, чтобы длины тактов немного варьировались, а в среднем получалось нужное значение.




Ответить с цитированием
