| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| 16F877 и измерване на продължителност на импулс? http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=2745 |
Страница 1 от 2 |
| Автор: | milenjs [ Сря Авг 09, 2006 12:02 pm ] |
| Заглавие: | 16F877 и измерване на продължителност на импулс? |
Дайте някаква идея за измерване на продължителност на импулс - от качващ до падащ фронт. Кофтито е че порт В е зает и не може да се ползва, там щеше да стане лесно с прекъсване при промяна на състоянието на който и да е пин от порт |
|
| Автор: | VSU [ Сря Авг 09, 2006 12:46 pm ] |
| Заглавие: | |
In Capture mode, CCPR1H:CCPR1L captures the 16-bit value of the TMR1 register when an event occurs on pin RC2/CCP1. An event is defined as: • Every falling edge • Every rising edge Айде малко да поровиш де или този режим на работа е ТАБУ за теб |
|
| Автор: | milenjs [ Сря Авг 09, 2006 12:57 pm ] |
| Заглавие: | |
Не е табу, така си измервам периода на импулса, сега ми трябва да меря ширината на импулса, не се сещам как и дали може да се стартира кепчара по качващ фрон и да се спре/отчете таймер 1 при падащ фронт. Ако някой знае - да драсне нещо. Благодаря! |
|
| Автор: | Predator_MF [ Сря Авг 09, 2006 1:15 pm ] | |||||||||
| Заглавие: | ||||||||||
В регистър CCPCON1:
Нагласяш си прекъсване при CCP1 capture, нагласяш фронта на положителен (пишеш xxxx0101 в CCPCON1) - при поява на прекъсване, нулираш таймер 1, сменяш фронта на отрицателен (xxxx0100 в CCPCON1), при появата на следващото прекъсване ще имаш дължината на импулса в Timer1. |
||||||||||
| Автор: | VSU [ Сря Авг 09, 2006 1:21 pm ] |
| Заглавие: | |
даже не е нужно да нулира таймера помни стойноста някаде сменяш режима от нарастващ на падащ фронт на следващото прекъсване четеш новата стойност и вадиш от нея старата |
|
| Автор: | milenjs [ Сря Авг 09, 2006 1:42 pm ] |
| Заглавие: | |
OK, ще го пробвам ама без прекъсване и ще обадя дали е станало! |
|
| Автор: | VSU [ Сря Авг 09, 2006 2:05 pm ] | ||
| Заглавие: | |||
Пример4е на Ц
|
|||
| Автор: | rumen [ Сря Авг 09, 2006 3:38 pm ] |
| Заглавие: | |
Примерче на протон Variable = PULSIN Pin , State |
|
| Автор: | Реконструктор [ Сря Авг 09, 2006 3:48 pm ] |
| Заглавие: | |
Аналогов компаратор нямаш ли свободен? |
|
| Автор: | Dimitar [ Сря Авг 09, 2006 4:15 pm ] | |||||||||
| Заглавие: | ||||||||||
За тая цел се ползват кепчъри, щото става автоматично. С компаратор пак ще стане, ама с малко повече играчка И е по добре да нулира таймера, за да не смята после повече, още повече пък на следващия качващ фронт вече му дава и периода. Така с един кепчър - два заека |
||||||||||
| Автор: | milenjs [ Сря Авг 09, 2006 4:36 pm ] |
| Заглавие: | |
Румене, с Pulsin става най-лесно, но при 4 мхз кварц разделителната му способност е 10us та затова се мъча с CCP |
|
| Автор: | milenjs [ Сря Авг 09, 2006 4:49 pm ] |
| Заглавие: | |
Kой да ти чете внимателно че понякога при запис в CCP1CON си вдига флага за прекъсване и цял час се чудя защо ми дава само 4 мкс |
|
| Автор: | VSU [ Сря Авг 09, 2006 5:19 pm ] |
| Заглавие: | |
Друг е въпроса че като нулираш таймера вече не е и вярно (времето за влизане в прекъсване) меренето ти . milenjs за това в примерчето чистенето на флага съм го сложил най-накрая |
|
| Автор: | milenjs [ Сря Авг 09, 2006 5:26 pm ] | |||||||||
| Заглавие: | ||||||||||
Добре де, къде бъркам, не ми измерва дължината на импулса а периода
|
||||||||||
| Автор: | Реконструктор [ Сря Авг 09, 2006 5:35 pm ] |
| Заглавие: | |
Еми кепчъра, доколкото разбирам, бачка само по един фронт. Аз за това казвам за компаратора, щото иначе не виждам как ще стане. |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|