SERG_LT писал(а):
В статье, Вы пишите: "В реализованном кодировании не применяется двухфазное кодирование, используется ШИМ, простыми словами это аналогоцифровой гибрид". Т.е., как я понимаю, передаются импульсы и паузы фиксированной длины. На приемной стороне все это фильтруется и идет подсчет принятых импульсов. От кол-ва принятых импульсов зависит урон. Я правильно понимаю?
Всё правильно, только настоящего фильтра в оригинальной версии нет. Приёмник накапливал "радиацию" и если её набиралось больше порога считал что есть поражение, сила поражения определялась неакопленной величиной. То есть если приходили просто помехи от солнца, радиация не накапливалась больше нужной, урона вообще не вычиталась, фиксировался только звук близкий выстрел. Помех на солнце небыло но были помехи от тени, если бежать в "рябом" свете от листьев например,то появлялось поражение. У нас солнца мало,тени резкие отсутствуют, практически сам о таком глюке узнал только от повторивших первую схему.
SERG_LT писал(а):
И еще. Почитал про вытесняющую многозадачность. Интересная вещь, но не в моем случае
Мой 16ПИК не справится.
Как таковой многозадачности там нет. Задача (логический кусок кода) сам принимал решение выполнятся или нет основываясь на времени потраченом предыдущими заданиями, если времени до конца кванта осталось мало то задача просто не запускалась отдавая управление дальше. Важные задачи приём\передача ИК стоят в начале кванта, звук некритичен можно и пропустить шаг другой. Там вообще вся программа задумывалась как академический опыт, а не лазертаг, попытка написать программу с определённым временем реакции без использования прерываний (даже прерывания таймера не используется). Прошивка реально может портироватся на любой МК, в который влезет по памяти.
В версии V2, поступил традиционее, увеличил тактовую процессора в два раза, и вызываю задачи только по пришествию нужного момента времени, но всегда и никогда не пропускаю задачу. Без увеличения тактовой частоты МК, такой подход не заработает.