2014年4月15日火曜日

PSoC5LPでLEDチカチカ2~ほぼ書かない編~

では、LEDチカチカをほぼ書かないバージョンです。
まずは、前回のプログラム(プロジェクト)を開きましょう。

前回のプロジェクトを開いたら
「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だからこそこんな事が出来るんです。

2 件のコメント:

  1. PWM なんか使わなくても、クロックを直接つないじゃえば、解決です。

    返信削除
    返信
    1. わかっている人は、クロックを直につないでもいいんです。
      ただ、必ずしもHDLやデジタル回路を0から勉強している人も少ないので
      回りくどくても把握しやすい方法を取りました。

      削除