То VLT: Вот натыкал по-быстрому тестилку для MSP430G2553 в IAR. Pin
P2.2. Поключил параллельный контур на 125 кГц ("гантелька" 1 mH +
1620 pF - что было под руками) к этому пину через емкость 100 пФ.
Но действительно, без включения катушки в цепь обратной связи
результат неутешительный :( #include <string.h>
#include <stdio.h>
#include "io430.h"
char str[10];
char cnt;
short get_freq (void)
{
// P2.2
TA0CTL = TACLR; // Clear
TA0CTL = TASSEL_3+MC_2; // TACLK, cont mode
TA0CCTL1 = CM_3+CCIS_2+CAP; // Pos&Neg,GND,Cap
P2DIR &= ~ BIT2;
P2SEL &= ~ BIT2;
P2SEL2 |= BIT2;
__delay_cycles(10000); // 10 ms
TA0CCTL1 ^= CCIS0; // Create SW capture of CCR1
TA0CTL = 0; // Stop Timer_A
P2SEL2 &= ~BIT2;
P2DIR |= BIT2;
P2OUT &= ~BIT2;
return(TACCR1); // resultat
}
void putch(char c)
{
while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?
UCA0TXBUF = c;
}
int main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
BCSCTL1 = CALBC1_1MHZ; // Set DCO 1 MHz
DCOCTL = CALDCO_1MHZ;
P2SEL=0; //îòêëþ÷èì êâàðö
BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO (ACLK)
////////// настройка UART //////////////////////////////
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 104; // 1MHz 9600
UCA0BR1 = 0; // 1MHz 9600
UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
while (1)
{
sprintf(str,"%u\r\n", get_freq());
cnt=0;
while (str[cnt]!=0)
{
putch(str[cnt]);
cnt++;
}
__delay_cycles(500000); // 500 ms
}
}