忍者ブログ
グラビアアイドルについて語るブログ。
[34] [33] [32] [31] [30] [29] [28] [27] [26] [25] [24]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

今回はフルカラー LED を点灯させてみました。使用した LED は、日亜 NSTM515AS です。

フルカラーLED

アノードコモンですので、次のように接続しています。

[CON3-1] +3.3V → (+)LED
LED(R-) → 680Ω → [CON1-1] P90
LED(G-) → 680Ω → [CON1-2] P91
LED(B-) → 680Ω → [CON1-3] P92

データシートを見て、抵抗値は赤で400Ω弱、青・緑では50Ωくらいで計算していたのですが、試しに680Ωで点灯させてみたところ、実験するには十分明るかったので、各色すべて680Ωとしました。さすがに、青単色だと若干暗い感じはしますが。

以下、主要なコードです。約1秒ごとに、以下の点灯パターンで色が変化します。
無点灯 → 赤 → 緑 → 赤+緑 → 青 → 赤+青 → 緑+青 → 赤+緑+青

#define T (20000000 / 512) // 1000ms周期

static int count = 0;

// ポート初期化
void init_port()
{
// P90〜P92の設定
PMC9L = 0; // 入出力ポート
PM9L = 0; // 出力モード
P9L = ~count & 0xff;

#if defined(DEBUG)
// ポートCT6の設定 (動作確認用)
PMCCT6 = 0; // 入出力ポート
PMCT6 = 0; // 出力モード
PCT6 = 0; // Lレベル
#endif
}

// タイマ初期化
void init_timer()
{
// TMP1の設定
TP1CE = 0; // 動作禁止
TP1CKS = 7; // fxx/512
TP1MD = 0; // インターバル・タイマ・モード
TP1CCR0 = T - 1;
TP1CE = 1; // 動作許可
}

// 割り込み初期化
void init_intc()
{
// INTTP1CC0
TP1CCPR0 = 0; // 割り込み優先度 = 0
TP1CCMK0 = 0; // 割り込み許可
}

// タイマ割り込みハンドラ
void timer_int_handler()
{
++count;
P9L = ~count & 0xff;

#ifdef DEBUG
PCT6 ^= 1;
#endif
}

PWM と組み合わせたりすると、癒し効果の演出も可能ではないかと思います。

【備考】gcc で開発しています。
PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
ブログ内検索
カレンダー
11 2024/12 01
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
最新コメント
[07/07 tiffany jewelry uk]
[09/17 車載モニター・阿蘇テック]
[08/30 愛]
[06/12 シモネッタ]
[06/11 arms22]
最新トラックバック
フリーエリア
あわせて読みたい
    Firefox 2 無料ダウンロード
    バーコード
    プロフィール
    名前:
    シモネッタ
    性別:
    非公開
    カウンター
    アクセス解析