マイコン制御 LED点灯プログラム フローチャート

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kerotan0820
記事: 91
登録日時: 14年前

マイコン制御 LED点灯プログラム フローチャート

#1

投稿記事 by kerotan0820 » 14年前

学校から出題されたレポートの課題です

学年の中でいくつかの班にわかれ、各班に職員がつき、ローテーションで各単元の講習を受けるという形が学校ではとられています。

今回質問するものは、おそらく夏休み明けに回ってくる課題なのですが、今現在出題されている生徒ら曰く、一切の解説などがなく、職員から生徒に課題が丸投げされたらしいです。

内容は、LEDの点灯プログラム(3種類)を、フローチャートに直せとのことでした。

C言語におけるフローチャートの記述方法は基本的に習っているのですが、マイコン制御の場合を教わったこともなく困っております。

Google先生に尋ねながらもこうなのかな…というものを作ってみました。

添付した"課題3.zip"に Wordで作ったフローチャートとプログラムを撮った写真(.jpg)が入っておりますので、確認していただけると幸いです。

学校の課題では、一度提出したらそれが採点され、修正などが出来ないので、完璧に近づけて夏休み明け、提出したいと思っております。

ご教示の方よろしくお願いします。

画像
添付ファイル
課題3.zip
(1.8 MiB) ダウンロード数: 216 回
けろけろにゃー (」・ω・)」うー!

non
記事: 1097
登録日時: 14年前

Re: マイコン制御 LED点灯プログラム フローチャート

#2

投稿記事 by non » 14年前

載せてあるプログラムは先生から与えられたものですか?あれには,マイコンのイニシャライズの部分が
ないのですが,本当にあれでいいのですか?

「B(0xFF)に出力」の部分ですが,PICにとってみれば確かに入出力なのかもしれませんが,
レジスタに書き込んでいるので,処理と考えることもできます。
どちらの記号を使うのかは先生に尋ねる必要があります。

私なら,処理を使い
0xFF→ポートB
にします。
non

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: マイコン制御 LED点灯プログラム フローチャート

#3

投稿記事 by softya(ソフト屋) » 14年前

私も処理の記号を使うと思いますが先生に確認したほうが良いでしょう。
non さんが書きました:載せてあるプログラムは先生から与えられたものですか?あれには,マイコンのイニシャライズの部分が
ないのですが,本当にあれでいいのですか?
あれで動くようです。ライブラリのoutput_b()関数で何かしているのでしょう。
http://blog.livedoor.jp/yone395/archives/50349358.html
CCS Cは良く分かりません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

non
記事: 1097
登録日時: 14年前

Re: マイコン制御 LED点灯プログラム フローチャート

#4

投稿記事 by non » 14年前

softya(ソフト屋) さんが書きました:あれで動くようです。ライブラリのoutput_b()関数で何かしているのでしょう。
http://blog.livedoor.jp/yone395/archives/50349358.html
CCS Cは良く分かりません。
ポートの入出力方向の設定は必要だと思いますけど。
サンプルの
set_tris_b(0);
です。
PICやこのコンパイラについては知りませんが。
non

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: マイコン制御 LED点灯プログラム フローチャート

#5

投稿記事 by softya(ソフト屋) » 14年前

non さんが書きました:
softya(ソフト屋) さんが書きました:あれで動くようです。ライブラリのoutput_b()関数で何かしているのでしょう。
http://blog.livedoor.jp/yone395/archives/50349358.html
CCS Cは良く分かりません。
ポートの入出力方向の設定は必要だと思いますけど。
サンプルの
set_tris_b(0);
です。
PICやこのコンパイラについては知りませんが。
失礼しました見逃してました。
普通マイコンはリセット時は入力ポートになっているので出力ポートにするには設定が必要なはずなんですけどね。

ただ、後閑哲也氏のサイトに書いてあるコードの一部にポートの入出力方向を設定していないものがあるんですよね。
http://www.picfun.com/ctechframe.html

コード:

//////////////////////////////////////////
// This is an ezample of led control.
// Led is controled by bit output.
// The interval time is about 0.5sec.
// Include the standard header file.
/////////////////////////////////////////
#include <16f84.h>
#use delay(clock=10000000)
main() {
  while(1){          //endless loop
    output_low(PIN_B0);   //led on
    delay_ms(500);
    output_high(PIN_B0);  //led off
    delay_ms(500);
  }
}
///////////////////////////////////////////
ライブラリがポートを設定しているのでしょうかね?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

kerotan0820
記事: 91
登録日時: 14年前

Re: マイコン制御 LED点灯プログラム フローチャート

#6

投稿記事 by kerotan0820 » 14年前

皆様回答ありがとうございます。

ポートの入出力の設定がされてないように見える件について、仕様なのか尋ねてみます。
処理記号を使うかについても、明日にでも確認してみます。

それと、一応上記2点を省いてはフローチャートに問題はないということでよろしいでしょうか?
私は何もわからない身で皆様にご協力頂いているので、ある程度正解だろうといったレベルで良いと思っていますので、気軽により多くのご意見がいただけると幸いです。

よろしくお願いします。
けろけろにゃー (」・ω・)」うー!

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: マイコン制御 LED点灯プログラム フローチャート

#7

投稿記事 by softya(ソフト屋) » 14年前

ハードウェア構成が分からないのですが、LED点灯と書いてあるのでポートBに出力するとLED点灯なのだと思います。
なので、「0xFFでLEDを点灯」とか書くのも良い気がしますが先生がどれを正解にするか分からないので確認されたほうが良いと思います。
0xFF→ポートB→LED(●●●●●●●●)
0xF8→ポートB→LED(●●●●●○○○)
なんて書くことも考えられます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

non
記事: 1097
登録日時: 14年前

Re: マイコン制御 LED点灯プログラム フローチャート

#8

投稿記事 by non » 14年前

softya(ソフト屋) さんが書きました:ライブラリがポートを設定しているのでしょうかね?
教えていただいたHPに添付のように書いてありますから,output_lowやoutput_bなどの関数は自動的に
モード設定をすると考えてよさそうです。
添付ファイル
無題.png
無題.png (28.65 KiB) 閲覧数: 8710 回
non

non
記事: 1097
登録日時: 14年前

Re: マイコン制御 LED点灯プログラム フローチャート

#9

投稿記事 by non » 14年前

フローとしては,LEDの出力をどのように書くかということだけでいいと思います。

ただ,プログラムは,これは,わざと繰り返していない課題なのでしょうね。

また,マイコンのプログラムではOSに戻りませんので,最後は永久ループで終わるのが普通ですが。
non

kerotan0820
記事: 91
登録日時: 14年前

Re: マイコン制御 LED点灯プログラム フローチャート

#10

投稿記事 by kerotan0820 » 14年前

softya(ソフト屋) さんが書きました:ハードウェア構成が分からないのですが、LED点灯と書いてあるのでポートBに出力するとLED点灯なのだと思います。
なので、「0xFFでLEDを点灯」とか書くのも良い気がしますが先生がどれを正解にするか分からないので確認されたほうが良いと思います。
0xFF→ポートB→LED(●●●●●●●●)
0xF8→ポートB→LED(●●●●●○○○)
なんて書くことも考えられます。
non さんが書きました:私なら,処理を使い
0xFF→ポートB
にします
上げていただいた意見を明日、学校で聞いてみたいと思います。

一応、non様の 0x~ →ポートB にしてみました。
画像


学校にて確認が済むまで保留させていただきます。
けろけろにゃー (」・ω・)」うー!

kerotan0820
記事: 91
登録日時: 14年前

Re: マイコン制御 LED点灯プログラム フローチャート

#11

投稿記事 by kerotan0820 » 14年前

学校にて確認が済みました。

LEDの点灯処理は
0xFF→ポートB
この記述でも何でも構わないそうです(どういった流れなのかが分かれば良いとのこと)

それと、待ち時間の記号はただの処理で良いといわれたのでそこは修正します。

ありがとうございました。
けろけろにゃー (」・ω・)」うー!

non
記事: 1097
登録日時: 14年前

Re: マイコン制御 LED点灯プログラム フローチャート

#12

投稿記事 by non » 14年前

アセンブラをやっていた人間にとっては、
0xFF→ポートB

(0xFF)→ポートB
は違います。
0xFF→ポートB
は即値命令で、その数値がポートBに出ますが、
(0xFF)→ポートB
では、0XFF番地に入っている値がポートBに出ます。
non

kerotan0820
記事: 91
登録日時: 14年前

Re: マイコン制御 LED点灯プログラム フローチャート

#13

投稿記事 by kerotan0820 » 14年前

しばらく投稿できそうにないので一旦〆させていただきます。
けろけろにゃー (」・ω・)」うー!

閉鎖

“C言語何でも質問掲示板” へ戻る