まずは、前回のプログラム(プロジェクト)を開きましょう。
前回のプロジェクトを開いたら
「main.c」のタブを開いて
main.cの前回のプログラム部分を
/**
**/
を使って挟みましょう。
次に、「TopDesign.cysch」のタブを開いて
「Pin_1」をダブルクリックして設定を開きましょう。
開いたら「HW Connection」のチェックボックスにチェックを入れて
「OK」をクリックします。
Pin_1の設定のOKをクリックしたら、右側のコンポーネントの画面から
「Digital」のファイルの「Functions」のファイルにある「PWM」のコンポーネントを
ドラックアンドドロップをして、PSoC5LPを描く領域に入れましょう。
また、「Digital」の「Logic」のファイルにある
「Logic Low '0'」のコンポーネントと
「System」のファイルある
「Clock」のコンポーネントを
PSoC5LPを描く領域にドラックアンドドロップして入れましょう。
それぞれをこんな感じに並べます。
そしたら、「Clock_1」をダブルクリックして
クロックの設定の画面を開きましょう。
開くとこんな感じ。
そうしたら、「Source」のプルダウンメニューから
「IMO(3.000MHz)」を選択します。
「Specify」の項目のラジオボタンはそのままにして
プルダウンメニューから「Hz」を選んで、となりのボックスに「500」
入れましょう。
入れ終わるとこんな感じ。
そうしたら、「OK」をクリックして
「PWM」と「Clock」と「Logic Low '0'」をつなぎましょう。
つなぐとこんな形
「Logic Low '0'」を「PWM」のresetにつなぐのは、
PSoC5LPが動き出しても、「リセットしませんよ」て言う。しるし
つなぎ終わったら、PWMの設定を
ダブルクリックで開きましょう。
開くとこんな感じ。
「Resolution」のラジオボタンを16-bitにして
「PWM Mode」のプルダウンメニューから「One Output」を選びましょう。
ここまで選んだ段階だとこんな感じ。
そうなったら、
「Period」に499
「CMP Value」に250を入力しましょう。
Period = 1Sと太字で書いてあると思います。
これは、0、1,2…499回数えると「1秒周期ですよ」ってこと
なので「250」を超えたら、ONにしてくださいってすると
500ミリ秒間はoff 500ミリ秒間はon と言う感じになるんです。
入力が終わると、こんな感じ
こうなったら「Ok」をクリックしましょう。
ここまで来たら、
PWMとpin_1をつなぎましょう。
そうしたら、1度ビルドボタンを押しましょう。
ビルドが終わったら
もう一度、「main.c」のタブを開いて
for(;;)の部分に
PWM_1_Start();
だけを入力して
もう一度ビルドボタンを押します。
これで完成(/・ω・)/
実際に動作を確認してみましょう。
書き込みボタンをおして、データをPSoC5LPに入れましょう。
動作としては同じですね。
では、LEDを増やしてみましょう。
新しく「Digital Output Pin」のコンポーネントを入れて
PWMにつなぎましょう。
つないだら、「[***].cydwr」のタブを開いてPin_2に別のピンを足しましょう。
(私はfreeSoCなのでP15[5]につなぐと別のLEDが使えるようになる)
そして、ビルドボタンを押して、PSoC5LPにデータを入れましょう。
どうでしょう?チカチカするLEDが増えたでしょうか?
でも、プログラムは書き足してないですね?。
PSoC5LPだからこそこんな事が出来るんです。
PWM なんか使わなくても、クロックを直接つないじゃえば、解決です。
返信削除わかっている人は、クロックを直につないでもいいんです。
削除ただ、必ずしもHDLやデジタル回路を0から勉強している人も少ないので
回りくどくても把握しやすい方法を取りました。