工具/软件:Code Composer Studio
尊敬的团队
MSP-TS430PN80目标主板使用具有4M 外部晶体振荡器的 MSP430F2619芯片。
定时器 TimerB 无法准确捕获超过20K 的频率。
请帮助
void SetupClock() { uint16_t tmpv; BCSCTL1 &=~XT2OFF; BCSCTL3 |= XT2S_2; 操作 { IFG1 &=~OFIFG; for (tmpv = 0xff;tmpv > 0;tmpv--); } while (((BCSCTL3 & XT2OF)=1); BCSCTL2 |= SELM_2+SELS; } void Capture_Pos (void)//timer_B { TB0CTL |= TBSSEL_2 + ID_0 + MC_2 + TBCLR + TBIE; TBCCTL0 = CM_1+CCIS_1+SCS+CAP+CCIE; } #pragma vector = TIMERB0_Vector __INTERRUPT void Timer_B0 (void) { 静态双精度 Pre_T_Frequency = 0; IF (TBCCTL0和 CM0) { T_CaptureNum++; if (T_CaptureNum =1) { T_CAP_COUNT_FIRST = TBCCR0; }否则(T_CaptureNum >= 2) { T_CAP_COUNT_second = TBCCR0; if (T_CAP_COUNT_second>T_CAP_COUNT_FIRST) { T_count_num = T_CAP_COUNT_second-T_CAP_COUNT_FIRST; }否则{ T_COUNT_num= 0xFFF+T_CAP_COUNT_second-T_CAP_COUNT_FIRST; } T_Frequency =((float) 4000000)/T_count_num; T_CaptureNum = 0; IF (T_Frequency!= Pr_T_Frequency) { PRE_T_Frequency = T_Frequency; }否则{ Close_T_capture (); } } }