忍者ブログ
グラビアアイドルについて語るブログ。
[1] [2] [3] [4] [5] [6] [7] [8]
×

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

CQ_V850 で、4つの LED を順次点灯する実験を行いました。

ブレッドボードを使いました。配線がぐちゃぐちゃです。

4つのLEDでの点灯実験

次のようにポート9を使い、Hレベルで点灯しています。

[CON1-9] P98 → 680Ω → (+)LED(-) → GND [CON3-10]
[CON1-10] P99 → 680Ω → (+)LED(-) → GND [CON3-10]
[CON1-11] P910 → 680Ω → (+)LED(-) → GND [CON3-10]
[CON1-12] P911 → 680Ω → (+)LED(-) → GND [CON3-10]

以下、主要なコードです。

周期的に LED を点灯させるための変数です。Lレベルで点灯する場合は、配列の値を反転する必要があります。

static const unsigned char p9h[] = {
0x00, // none
0x01, // P98
0x03, // P98+P99
0x07, // P98+P99+P910
0x0f, // P98+P99+P910+P911
};
static unsigned int p9_count = 0;


メイン関数内で、ポート、タイマ、割り込みの初期化を行います。

// メイン
void sample_main()
{
...
init_port();
init_timer();
init_intc();
...
}

// ポート初期化
void init_port()
{
// ポート98〜ポート911の設定
PMC9H = 0; // 入出力ポート
PM9H = 0; // 出力モード
P9H = p9h[p9_count];
}

// タイマ初期化
void init_timer()
{
// TMM0の設定
TM0CE = 0; // 動作禁止
TM0CKS = 4; // fxx/512
TM0CMP0 = 20000000 / 512 - 1; // 1000ms周期
TM0CE = 1; // 動作許可
}

// 割り込み初期化
void init_intc()
{
// INTTM0EQ0
TM0EQPR0 = 1; // 割り込み優先度 = 1
TM0EQMK0 = 0; // 割り込み許可
}


INTTM0EQ0 割り込みハンドラで、LED の点灯状態を変更します。

void timer_int_handler()
{
if (++p9_count == sizeof(p9h) / sizeof(unsigned char))
p9_count = 0;
P9H = p9h[p9_count];
}



【備考】gcc で開発していますが、独自マクロで Applilet っぽく書けるようにしています。
PR
マイコンと表示器をつなぐ10の方法』の最初の方を読み、ようやく LED を使った実験を開始する知識レベルに達しました。

この本では、以下のマイコンでの各種表示器の使い方が載っているのですが、実際にそのマイコンを使っていなくても参考になります。
・PIC16F84A
・PIC16F628A/PIC16F648A
・R8C/15
・H8/3694F
・78K0S/KA1+

プルアップ抵抗やトランジスタ等についてはさらっと書かれており、電子回路初心者にとっては完全に理解できていない部分もありますが、ポート出力による LED の点灯/消灯の仕組みはわかりやすく解説されていると思います。

CQ_V850 基板上の LED では、PCT6 に0を出力して点灯、1で消灯させますが、これまではその原理を知ることなく「これはそういうものなのだ」と処理していました。ポートに1, 0を出力するというのは電圧をそれぞれ H, L レベルにするということ、LED の接続方向によっていずれの電圧レベルで点灯するのかが決まるということだったのですね。回路図の見方もほんの少し上達しました。

さらに CQ_V850 の回路図を見ると、CON3 の9ピンが PCT6 であることに気づいたので、次のような回路を試してみました。

CON3-9 (PCT6) → LED (アノード) → LED (カソード) → 抵抗 (680Ω) → CON3-10 (GND)

この回路の LED は H レベルで点灯し、基板上の LED の点灯/消灯を繰り返すサンプルプログラムを動作させれば、基板上の LED と実験回路上の LED は点灯/消灯が逆になるはずだと考えたのですが、思った通りになってくれました。本当に簡単な実験ですが、ようやく前に進めた気がします。

また、回路を設計する上では、マイコンのドライブ能力というものを考慮しなければならないという点も勉強になりました。上の本では LED に流す電流は10mAで計算していますが、V850ES/JG2 ではソース電流、シンク電流ともにポートあたり最大4mAらしいので、注意しなければなりません。

今後はユニバーサル基板上に実験回路を作っていきたいと考えているのですが、配線が思った以上に難しいなと四苦八苦しているところです。『エレキジャック』で練習した方がいいのかもしれません。
先週の後半から、yum を使って Fedora Core 6から Fedora 7へのアップグレードを行いました。かなりハマりまして、両バージョンが混在するという事態が3日ほど続きました。

●yum リポジトリの更新

# rpm -Uvh http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/Fedora/fedora-release-7-3.noarch.rpm http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/Fedora/fedora-release-notes-7.0.0-1.noarch.rpm

# rpm -Uvh http://rpm.livna.org/livna-release-7.rpm


/etc/yum.repos.d/ を確認すると、fedora-updates.repo.rpmnew というファイルができており、手動で fedora-updates.repo にファイル名を変更する必要がありました。

●アップグレード開始

# yum clean all
# yum upgrade


依存性の解決で問題が発生するので、原因となっているパッケージ(kon2 など)を削除し、再度アップグレードを開始します。これで順調に進めばよかったのですが…

アップグレード処理が止まった状態になり、再起動を余儀なくされました。これがバージョン混在の直接的な原因です。

アップグレード中は一時的にパッケージの依存関係が壊れています。そのために yum を起動することができず、面倒でしたが、python を手動でダウングレードしました。

何とか yum が使えるようになりましたが、リポジトリ関係のエラーが出て、どうも yum-fastestmirror の存在が問題となっているようだったので、削除しました。

●復旧作業

これまで yum や rpm でのパッケージ管理の際、エラーメッセージが大量に出ていました。どうやら RPM データベースが壊れているっぽいです。yum によるアップグレードが止まった原因かどうかは分かりませんでしたが、RPM データベースを再構築しました。

# rpm --rebuilddb


ついでに、重複しているパッケージを削除しました。

# package-cleanup --cleandupes


再度 yum upgrade を行うと、無事に完了しました。

断定はできませんが、Fedora Core 5から6へのアップグレードの際に上書きインストールしたのが、今回のトラブルの遠因となったのではないかという気がします。その場合でも、すぐに RPM データベースのメンテナンスをしておけばよかったのかもしれません。

●教訓

・上書きインストールはせずに、yum upgrade を使う。
・RPM データベースが変だと思ったら、すぐに再構築する。
・重複パッケージはまめにチェックして、すっきりしておく。
今日はLEDや抵抗などを買いに秋葉原まで行ったのですが、抵抗をバラで買うと、どれが何Ωの抵抗だったのかを覚えられそうにありません。

そこで、抵抗のカラーコードがあるというのを知りました。4色のうちいちばん右は許容差を表すようですが、まずは最初の2色(数値)と3つ目の色(乗数)から抵抗値を読み取れるようになりたいと思います。

0 黒
1 茶
2 赤
3 橙
4 黄
5 緑
6 青
7 紫
8 灰
9 白

例:黄紫茶金
47×101=470Ω

初心者にはこの程度のことさえ壁になるのです。
電子工作の道険し。
マイコンと表示器をつなぐ10の方法』を読み始めました。

今週中には CQ_V850 で LED の点灯くらいはできるようになりたいと思っています。


忍者ブログ [PR]
ブログ内検索
カレンダー
03 2024/04 05
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
最新コメント
[07/07 tiffany jewelry uk]
[09/17 車載モニター・阿蘇テック]
[08/30 愛]
[06/12 シモネッタ]
[06/11 arms22]
最新トラックバック
フリーエリア
あわせて読みたい
    Firefox 2 無料ダウンロード
    バーコード
    プロフィール
    名前:
    シモネッタ
    性別:
    非公開
    カウンター
    アクセス解析