[an error occurred while processing this directive]
|
задача такая
на один вход МК 16ф873 (877) приходит последовательно 2 цифры (с некоторым интервалом)(значение может быть от 0 до 9), а именно каждая цифра приходит в таком виде
например 1 - это одна лог единица длительностью 0,5 мС
2-2,
3-3
9-9лог единиц, длит 0,5мС
0-10 имп
(интервал между 1 - тоже 0,5 Мс), Но перед каждым пакетом означающем приходящее число идет 'запускающая' лог 1, тоже 0,5 мС, те которая говорит- дальше считай импульсы и узнаеш какое число пришло.
Так вот, получается что придет 2 пакета с неизвестным интервалом (он может колебатся от 0,3 до 2 сек)
вопрос такой
требуется
1)сохранить в памяти 1 цифру как деситки, вторую как единицы
2)вычесть из получившегося единицу, например, если было 29, то стало 28 или было 20 - стало19(те чтоб перенос был)
3) получившееся значение проверить на кратность 2 и если не кратно, то уменьшить еще на единицу, например было 18,ок -переходим к пункту4,а если было 21, то вычитаем 1 , получаем 20 и переходим к п4
4)получившееся число представляем двоичным 5-разрядным на какойнить порт мк
мне не нужна готовая прога просто если знаете то подскажите как, СПАСИБО.
E-mail: info@telesys.ru