以下のブログを参考にMSP430で赤外線リモコンで使う38Kの信号を作ってみた。
使ったgccはplatformioに入っていた4.6.3です。
P1.5に出力する。
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR |= BIT5; // P1.5 output
P1SEL |= BIT5; // P1.5 options select
TA0CCR0 = 26; // PWM Period
TA0CCTL4 = OUTMOD_7; // CCR4 reset/set
TA0CCR4 = 18; // CCR4 PWM duty cycle
TA0CTL = TASSEL_2 + MC_1 + TACLR; // SMCLK, up mode, clear TAR
__bis_SR_register(LPM0_bits); // Enter LPM0
__no_operation(); // For debugger
}
P1.5はTA0.4なので、TA0CCTL4,TA0CCR4を設定する。
さるのこしかけでキャプチャしたんですが時間の指標間違えています。いつか直します。
TA0CCR0を26にしてワンオクじゃなくてワンクロックが26uSで38Kくらいで、HIが18で18uSくらいになる。
P1.4もいっしょに出力すると、ワンクロックは同じ38KになるがTA0CCTL3,TA0CCR3でデューティ比は代えられる。