PSoC - Pulse Width Modulator(TCPWM)

今回は、PSoC 101の Lesson8をもとに、タイマ系のコンポーネントである TCPWMを使ったPWMの動画を作りました。


010 PSoC Pulse Width Modulator(TCPWM)


まあPWMなので、LEDをぼんやり点灯するということをやっています。 次の3とおりをやっています。

  1. 赤色LEDを明るめに点灯、暗めに点灯するのを交互に
  2. 緑色LEDを反転出力に追加して、赤、黄、黄緑、緑の4通りに点灯
  3. PWMを細かく変化させて、赤から緑まで連続的に点灯

本当は青色LEDを使いたかったのですが、動画内でも触れているように、 以前と同様のエラーが出てうまくいきませんでした。 ドキュメントにはTCPWM単独で使うには問題ないように 書いてあるのですが、配線で意図せずUDBを使っているのかもしれません。

ソースコードは次のようになっています。今はコメントにしていますが 前半は上記の1と2の部分で、後半は3の部分です。

int main(void)
{
    CyGlobalIntEnable; /* Enable global interrupts. */

    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    PWM_Start();
    
    for(;;)
    {
        /* Place your application code here. */
//        PWM_WriteCompare(0);
//        CyDelay(1000);
//        PWM_WriteCompare(2000);
//        CyDelay(1000);
//        PWM_WriteCompare(8000);
//        CyDelay(1000);
//        PWM_WriteCompare(10000);
//        CyDelay(1000);
        for (int i = 0; i <= 100; i++) {
            PWM_WriteCompare(i*100);
            CyDelay(50);
        }
    }
}

PSoCであそぼ - もくじ - (無)やまもと製作所の作業記録