Author: onishi

もくじ

コメント

コメントはありません。 Comments/チュートリアル/PSoC1duino_LED編

お名前:

LEDを点灯させる

PSoC1duinoについているLED(P1.6)を点灯させるには、下記のようなソースコードを記述します。

void main(void){
    LED_Start();
    LED_On();
    while(1);
}

それでは、LEDを点滅させるにはどうすればよいでしょうか?

LEDを点滅させる

PWM(Pulse Width Modulation)を使って点滅させる

1.まずは、モジュールを追加します。PSoC Designerの右下のUser Modules に、「PWMs」というものがあると思います。今回はその中で「PWM8」というモジュールを使用してみましょう。
ダブルクリックすると、Workspace Explorerに名前が、中央にはモジュールが追加されます。

2.次は、結線してみましょう。光らせたいLEDのあるP_1_6を選択し、selectを「GlobalOutOdd_6」にします。続いて、ユーザモジュールとROバス(ユーザモジュールの下にある、横に伸びた線)を接続します。PWM8_1を選択し、CompareOutを「Row_0_Output_2」とします。

次に、ROバスの右端についたアイコンをクリックします。すると、(a)のようなウインドウが開くので、一番下にある三角形をクリックして、「GlobalOutOdd_6」にします。そうすると、選択した三角形の色が変わるので、ウインドウを消してください。これで、結線は完了です。(b)のように、PWM_8_1 からLED までつながっているはずです。

a.png
b.png

3.パラメータを設定していきます。画面左側のパラメータを下記の様に変更します。
Global Resource

VC1=SysClk/N16
VC3 SourceVC2
VC3 Divider256
  • SysClk/NはSysClk(24MHz)の分周比。ここではN=16なので、VC1のクロック周波数は1.5MHzとなる。
  • VC2 = VC1/16 なので、VC3 Source(VC3クロックの分周クロック源) = SysClk/256

PWM8_1

ClockVC3
EnableHigh
TerminalCountOutNone
CompareOutRow_0_Output_2
CompareTypeLess Than Or Equal
InterruptTypeTerminalCount
ClockSyncSync to SynClk

PeriodとPulseWidthの値は、今回はソースコードで変更します。

4.最後に、ソースコードを記述し、ビルドします。

void main(void){
    int i;
    BYTE pulsewidth=0;
    PWM8_1_Start();
    PWM8_1_WritePeriod(255);
    PWM8_1_WritePulseWidth(128);
    while(1);
}

できた.hexをPSoC1duinoに転送することで、LEDが点滅するはずです。
周期(Period)とパルス幅(PulseWidth)を変化させることで、LEDの明るさを変化させることもできるので、余裕があれば試してみましょう。

Timerを使って点滅させる

手順はPWMとさほど変わりません。「PWM8_1」を「Timer8_1」と置き換えると、〜2.までは全く同じです。
3.はGlobal Resource のパラメータはそのまま流用します。Timer8_1のパラメータは、以下のように設定してください。

ClockVC3
CaptureHigh
TerminalCountOutROW_0_Output_2
CompareOutNone
CompareTypeLess Than Or Equal
InterruptTypeTerminalCount
ClockSyncSync to SysClk

4.最後に、ソースコードを記述して、ビルドします。

void main(void){
    Timer8_1_Start();
    Timer8_1_WritePeriod(100);
    while(1);
}

これでLEDが点滅するはずです。


添付ファイル: filea.png 773件 [詳細] fileb.bmp 417件 [詳細] filea.bmp 394件 [詳細] fileb.png 839件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-10-02 (日) 11:12:58