Возникла необходимость в замере длительности импульсов.
В описании на МК нашел следующее:
Код:
'******************************************************************************* Config Portc.0 = Input Config Xpin = Portc.0 , Outpull = Pulldown , Sense = Both ' Подтяжка к минусу питания, Both-обнаружение обоих фронтов '******************************************************************************* ' Источник событий PORTC_PIN0, коэффициент цифрового фильтра = 8 Config Event_system = Dummy , Mux0 = Portc.0 , Digflt0 = 8 '------------------------------------------------------------------------------- ' Конфигурация таймера=Normal, выбор синхронизации=EVCH0, канал события=0, PWC-захват длительности импульса Config Tcc0 = Normal , Prescale = E0 , Event_source = E0 , Event_action = Pwc '******************************************************************************* Do '------------------------------------------------------------------------------- Locate 2 , 1 : Lcd "TCC0_CNT = " ; Tcc0_cnt '------------------------------------------------------------------------------- Loop '*******************************************************************************
Из описания захват выполняется в конце импульса, а обнуление регистра счетчика в начале импульса.
Подаю сигнал, захват есть, а обнуление регистра не происходит, то есть счет идет непрывно.
Пробовал напрямую к регистрам обращаться, то же самое.
'******************************************************************************* Portc_dir = &B00000000 ' PORTC на вход Portc_pin0ctrl = &B0_0_010_000 ' Подтяжка к минусу питания, обнаружение обоих фронтов '------------------------------------------------------------------------------- Evsys_ch0mux = &B0110_0000 ' Мультиплексор канала событий - источник событий PORTC_PIN0 Evsys_ch0ctrl = &B00_0_0_111 ' Значение коэффициента цифрового фильтра - 8 Tcc0_ctrla = &B0000_1000 ' Выбор синхронизации - EVCH0 Tcc0_ctrlb = &B0000_0000 ' Конфигурация таймера - Normal Tcc0_ctrld = &B110_0_1000 ' Захват длительности импульса, канал события - 0 '******************************************************************************* Do '------------------------------------------------------------------------------- Locate 2 , 1 : Lcd "TCC0_CNT = " ; Tcc0_cnt '------------------------------------------------------------------------------- Loop '*******************************************************************************
Подскажите пожалуйста как правильно реализовать данную функцию.

