Отговори на тема  [ 3 мнения ] 
CCP как точно работи 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение CCP как точно работи
Здравейте!
Нещо не ми става ясно от спецификацията, каква е връзката между регистрите в CCP модула.
Доколкото разбирам модула се активира като вдигнеш CCP1IE.
TMR1 трябва ли да се нулира софтуерно, защото в момента съм го подкарал в Cepture моде, по преден фронт.
При симулацията на Proteusa на портБ изкарвам стойността на CCPR1L след всяко прекъсване но тези стойности нямат никаква връзка с очаквания рез.
Така или иначе преди всяко Capture събитие нулирам ст-та на TMR1.
Някой нещо да каже по въпроса ? ...
Импулсите които броя са с честота 1КХц, от външен източник постъпващи на RC0/T1OSO/T1CKI.


Вто Юли 03, 2007 12:00 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
CCPIE е "Interrupt Enable", опитай в регистър CCP1CON битове 3-0:
Цитат:
0000 = Capture/Compare/PWM disabled (resets CCPx module)
0100 = Capture mode, every falling edge
0101 = Capture mode, every rising edge
0110 = Capture mode, every 4th rising edge
0111 = Capture mode, every 16th rising edge
1000 = Compare mode, set output on match (CCPxIF bit is set)
1001 = Compare mode, clear output on match (CCPxIF bit is set)
1010 = Compare mode, generate software interrupt on match (CCPxIF bit is set, CCPx pin is
unaffected)
1011 = Compare mode, trigger special event (CCPxIF bit is set, CCPx pin is unaffected); CCP1
resets TMR1; CCP2 resets TMR1 and starts an A/D conversion (if A/D module is
enabled)
11xx = PWM mode


Трябва да си нулираш таймера да, иначе ще получаваш различни стойности всеки път. Другия вариант е в прекъсването да вадиш от последната стойност на CCP настоящата и ще получиш интервала (това което те интересува).


Вто Юли 03, 2007 1:06 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
Благодаря за мнението!
Значи доколкото разбирам модула се стартира след самото му конфигуриране, а се стопира чрез:
0000 = Capture/Compare/PWM disabled (resets CCPx module).
Проблемът ми се изясни малко след като постнах темата (то винаги така става след като се изповядаш), не съм променил по желания начин прескалера на TMR1.


Вто Юли 03, 2007 10:06 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 3 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни