Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

CCP как точно работи
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=4452
Страница 1 от 1

Автор:  perro_iv [ Вто Юли 03, 2007 12:00 pm ]
Заглавие:  CCP как точно работи

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

Автор:  Predator_MF [ Вто Юли 03, 2007 1:06 pm ]
Заглавие: 

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 настоящата и ще получиш интервала (това което те интересува).

Автор:  perro_iv [ Вто Юли 03, 2007 10:06 pm ]
Заглавие: 

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

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/