Можно и без прерываний обойтись для измерения длительности. Тогда будет сэкономлен таймер для лишнего канала ШИМ. В Баскоме есть очень удобный оператор для этого дела - "Pulsein". Я им вовсю пользуюсь и скорости проца мне хватает. Я измеряю не весь период, а только его половину. Ещё есть оператор "Bitwait". Для любителей ловли импульса заданной полярности. Вместе они выглядят, например, так:
Dim P As Word ' переменная для длительности импульса
Bitwait Pinc.4 , Set 'ждём, пока бит 4 порта С станет 1.
Pulsein P , Pinc , 4 , 1 'длительность импульса фронт - спад
Очень рекомендую снабжать текст программы подробными комментариями. Это очень пригодится в дальнейшем. И это является хорошим тоном в программировании. Кто-то из великих мира компьютеров когда-то давно сказал так: "Отсутствие комментариев в программе является достаточным основанием для увольнения программиста."
|