Uklunok писал(а):требую Вашего совета
жестко! сразу, испугавшись и дрожа, подсказываю:
если с генератора импульсы будут идти не очень часто, с промежутками, достаточными для передачи по UART данных, то задача не стоит выеденного яйца.
со стороны компа просто терминал запускаете, из МК передаете готовые числа.
в МК запускаете TIMER1 на счет с частотой 1 Мгц, разрешаете захват и прерывание по захвату. по переполнению таймера так же разрешаете прерывание, в котором инкрементируете 16-битный программый счетчик. по прерыванию от захвата у вас в регистре ICR1 будет младшее слово, а в программном счетчике - старшее слово интервала между захватами. если захват настроен на фронт - получите период импульсов, если на фронт и спад - длительность единицы. т.е. вам надо будет в прерывании по захвату из двух 16-битных чисел слепить одно 32-битное, и выдать его в основной цикл на обработку. обработка будет заключаться в том, что надо вычислять разность между ТЕКУЩИМ числом и его ПРЕДЫДУЩИМ значением - это и будет длительность импульса в микросекундах. останется только выдать это число по UART-у.
теперь вы и сами должны справиться за неделю
