реклама на сайте
подробности

 
 
> Timer B захват, то-ли лыжи не едут, то-ли лето настало...
serg_ok
сообщение Jul 1 2008, 05:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 5-12-06
Пользователь №: 23 143



Доброго времени суток.

Пытаюсь измерять частоту при помощи захвата таймера В (кристалл MSP40FG4618). Для проверки подцепил на вход таймера Р2.3 ACLK. Но при каждом прерывании TBR увелисивается только на 13 тиков, хотя должно быть гораздо больше (таймер тактируется SMCLK = 8 МГц)

Код:

Код
#include "msp430xg46x.h"

volatile unsigned int i;
int Capture;

void main (void)
{
  WDTCTL = WDTPW | WDTHOLD; // Stop WDT
  
  FLL_CTL0 |= XCAP10PF | DCOPLUS;
            
  do
  {
  IFG1 &= ~OFIFG;                          
  for (i = 0x47FF; i > 0; i--);            
  }
  while ((IFG1 & OFIFG));                  

  for(i=2100;i>0;i--);      
  
  P1DIR = 0x32;                             // P1.1 & P1.5 to output direction
  P1SEL = 0x32;                             // P1.1 & P1.5 to output MCLK & ACLK
  P2SEL = 0x08;
  
  SCFI0 |= FN_4;                            // x2 DCO freq, 8MHz nominal DCO
  SCFQCTL = 121;                            // (121+1) x 32768 x 2 = 7.995392 MHz
  


  
_BIS_SR (GIE);

TBCTL = TBSSEL_2 | MC_2; //TBCLK=SMCLK, Mode = CONT
TBCCTL2 = CM_1 | CCIS_0 | CCIE | CAP | SCS; // Capture on rising, Synchronous, Interrupt enabled
while (1);
  
}


#pragma vector = TIMERB1_VECTOR
__interrupt void CaptureISR (void)
{

  
Capture=TBCCR2;  // Тут стоит бряк
  
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 06:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01343 секунд с 7
ELECTRONIX ©2004-2016