ツインT発振器の続きです。トラ技9月号のマルチテスターキットで色々な波形を見ようとしています。
MSP430のTIMER_AはPWMができるようになっています。色々なduty比のパルスが見れます。
ソースはTIが公開しているサンプルを参考にしました。
使っているのはF2013です。F2013は何も設定しないと1MHzで動作しています。up modeだと、CCR0に設定した値になると0に戻る動作をします。2000にしているので、2ミリ秒で1周期です。途中でCCR1になったところで出力が反転します。出力はP1.2なので4pinです。
duty = 1000 (1:1)
![](https://blogimg.goo.ne.jp/user_image/1d/b7/8e759df7a9a76bff366d43d90352d200.jpg)
0.5ms/divで4divくらいなので1周期2ミリ秒で、計算どおりです。
デバッガでduty = 1000;の代入が終わったところまで動かしてから、dutyの値を書き換えてやるとデューティ比が変わります。定数を変えても再コンパイルや書き込みがいらないので、ちょこちょこっと試すのには便利です。
duty = 500 (1:3)
![](https://blogimg.goo.ne.jp/user_image/2f/3b/4531087c6e6734afec61f25889ac7ee4.jpg)
duty = 1500 (3:1)
![](https://blogimg.goo.ne.jp/user_image/4a/0e/0fd86c98ea7d09662b1c3b5421f8b9e1.jpg)
実験の様子です。
![](https://blogimg.goo.ne.jp/user_image/33/97/16799e06081bf6148b6909e64c0ff361.jpg)
右の方にいるICがMSP430 F2013で、右上にいるeZ430を使って、書き込み/デバッグしています。左上の方にいるのは前回のツインT発振器です。
TIの無料コンパイラCCEはeclipseベースなので結構重いですが、とても便利です。
MSP430のTIMER_AはPWMができるようになっています。色々なduty比のパルスが見れます。
#include <msp430x20x3.h> void main(void) { int duty = 1000; WDTCTL = WDTPW + WDTHOLD; // WDT停止 P1DIR |= 4; // P1.2を出力にする P1SEL |= 4; // P1.2をTA1にする CCR0 = 2000 - 1; // PWM周期(500Hz ... 2ms) CCTL1 = OUTMOD_7; // CCR1 reset/set CCR1 = duty; // CCR1 PWM duty cycle TACTL = TASSEL_2 + MC_1; // SMCLK, up mode _BIS_SR(CPUOFF); // LPM0に入る }
ソースはTIが公開しているサンプルを参考にしました。
使っているのはF2013です。F2013は何も設定しないと1MHzで動作しています。up modeだと、CCR0に設定した値になると0に戻る動作をします。2000にしているので、2ミリ秒で1周期です。途中でCCR1になったところで出力が反転します。出力はP1.2なので4pinです。
duty = 1000 (1:1)
![](https://blogimg.goo.ne.jp/user_image/1d/b7/8e759df7a9a76bff366d43d90352d200.jpg)
0.5ms/divで4divくらいなので1周期2ミリ秒で、計算どおりです。
デバッガでduty = 1000;の代入が終わったところまで動かしてから、dutyの値を書き換えてやるとデューティ比が変わります。定数を変えても再コンパイルや書き込みがいらないので、ちょこちょこっと試すのには便利です。
duty = 500 (1:3)
![](https://blogimg.goo.ne.jp/user_image/2f/3b/4531087c6e6734afec61f25889ac7ee4.jpg)
duty = 1500 (3:1)
![](https://blogimg.goo.ne.jp/user_image/4a/0e/0fd86c98ea7d09662b1c3b5421f8b9e1.jpg)
実験の様子です。
![](https://blogimg.goo.ne.jp/user_image/33/97/16799e06081bf6148b6909e64c0ff361.jpg)
右の方にいるICがMSP430 F2013で、右上にいるeZ430を使って、書き込み/デバッグしています。左上の方にいるのは前回のツインT発振器です。
TIの無料コンパイラCCEはeclipseベースなので結構重いですが、とても便利です。