Cómo obtener una señal con un período de 1s al programar MSP430
#include lt;msp430x44x.hgt;
void main(void)
{
WDTCTL = WDTPW WDTHOLD // Detener; WDT
TACTL = TASSEL_1 TACLR; // ACLK
CCTL0 = CCIE; // interrupción CCR0 habilitada
CCR0 = 32768
P5DIR |= 0x02; // Salida P5.1
TACTL |= MC1; // Modo de conteo continuo
_EINT() // Habilitar interrupciones
for (;;)
{
_BIS_SR(CPUOFF); // CPU apagada
_NOP() // Requerido solo para C-spy
p>}
}
// Rutina de servicio de interrupción del temporizador A0
//interrupción[TIMERA0_VECTOR] void Timer_A (void)
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P5OUT ^= 0x02 // Alternar P5.1
CCR0 = 32768; // Agregar compensación a CCR0
}
El período es 2S, encendido por 1S y apagado por un segundo.
P5 está conectado a un LED externo.
Si quieres que el ciclo sea 1S
Utiliza la mitad de 32768 16384
El La fuente de interrupción se selecciona como tiempo de 32768 HZ de ACLK es 1/32768 s. Cuando el conteo llega a 32768, se sale de la interrupción, que es 1 s.
En cuanto a BCSCTL2 amp;=0xc0;//XT2CLK 2. mencionaste División de frecuencia
¿Necesito mirar el archivo de encabezado?
F14 y F44 son casi iguales. Parece que la disciplina adicional de F44 es la disciplina de LCD, y no hay diferencia en otros aspectos.