急ぎでお願いします
Re: 急ぎでお願いします
これは何かの宿題でしょうか?問題の丸投げは禁止です。
また、非公式のGBAソフトの開発などマニアックすぎて答えられません。
せめてgba1.hの中身や、ハードウェアのデータが無いととても無理です。
あと、コードはcodeタグで囲って下さい。
また、非公式のGBAソフトの開発などマニアックすぎて答えられません。
せめてgba1.hの中身や、ハードウェアのデータが無いととても無理です。
あと、コードはcodeタグで囲って下さい。
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
Re: 急ぎでお願いします
情報が少なすぎます。
まずフォーラムルールに従ってコードを載せる際はcodeタグで囲っていただきますようにお願いします。
また、次の五点を明らかにしてください。
また「使っているOS名・コンパイラ名・ライブラリ名も明記しましょう。」これもお願いします。
ちなみに、「課題の丸投げ(問題文だけ書く事)は禁止です。」となってますのでご注意願いします。
非常に便利なテンプレがあるので、ご利用ください。
さらに、今回はGBAプログラムの開発のように思いますが非常にマニアックですので、エントリーポイントや使ってよい関数などを明示してください。
まずフォーラムルールに従ってコードを載せる際はcodeタグで囲っていただきますようにお願いします。
また、次の五点を明らかにしてください。
1. 自分は今何がしたくて - これは、タイマープログラムの作成ですね。
2. どう取り組んで(作ったプログラムはどれで - 自分がどこまでかけたのかを教えてください。
3. どのようなエラーやトラブルで困っていて - もし、エラーやコンパイルがうまくいかない場合や実行しても思いの結果にならなかった場合は教えてください。
4. 自分は何が解らないのか、知りたいのか
5. 今のCの知識はどの程度なのか
ちなみに、「課題の丸投げ(問題文だけ書く事)は禁止です。」となってますのでご注意願いします。
非常に便利なテンプレがあるので、ご利用ください。
[1] 質問文
[1.1] 自分が今行いたい事は何か
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
[1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
[1.4] 今何がわからないのか、知りたいのか
[2] 環境
[2.1] OS : Windows, Linux等々
[2.2] コンパイラ名 : VC++ 2008EE, Borand C++, gcc等々
[3] その他
・どの程度C言語を理解しているか
・ライブラリを使っている場合は何を使っているか
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
Re: 急ぎでお願いします
ご返答ありがとうございます。以下のようにしてみていただけますでしょうか??
[hr][追記]
h2so5さんとかぶってしまいましたね。。。
h2so5さんの方が、display_timeにまで0になった時の出力が食い込んでないので、いいかもしれませんね・・・
void display_time(hword val) {
/* 引数を10進数として表示する関数(最大値16ビット)*/
byte char_data[] = "9876543210";
byte buf[6];
hword tmp;
int i;
if (val == 0) /* ここから */
{
prints("0になりました");
return;
} /* ここまで変更 */
/* 入力値valの桁数設定 */
i = 3;
/* 文字列の最後にNULLコード挿入 */
buf[i+1] = 0;
/* 最下位桁の文字(10で割った余り)を挿入し,入力値を10で割る */
for(; i >= 0; i--) {
buf[i] = char_data[mod(val, 10)];
val = div(val, 10);
}
/* 文字列全体を表示 */
prints(buf);
return;
}
h2so5さんとかぶってしまいましたね。。。
h2so5さんの方が、display_timeにまで0になった時の出力が食い込んでないので、いいかもしれませんね・・・
Re: 急ぎでお願いします
ありがとうございます。
9999秒からカウントダウンが始まるのでなかなか0になりません。
そこでこれを60からカウントダウンが始まるようにする方法を教えて下さい。
h2so5さんのを加えて実行してみましたが、99999999→99989998→99979997となってしまいました。
9999秒からカウントダウンが始まるのでなかなか0になりません。
そこでこれを60からカウントダウンが始まるようにする方法を教えて下さい。
h2so5さんのを加えて実行してみましたが、99999999→99989998→99979997となってしまいました。
Re: 急ぎでお願いします
それは、タイマの仕様が分からないと答えられません。
なにか他に資料は無いのですか?
追記:
*((unsigned short *)0x0400010C) = 0x0000; // タイマ3 カウンタ設定(元クロック1秒)
↓
*((unsigned short *)0x0400010C) = 0x003C; // タイマ3 カウンタ設定(元クロック1秒)
これでどうでしょうか?
なにか他に資料は無いのですか?
追記:
*((unsigned short *)0x0400010C) = 0x0000; // タイマ3 カウンタ設定(元クロック1秒)
↓
*((unsigned short *)0x0400010C) = 0x003C; // タイマ3 カウンタ設定(元クロック1秒)
これでどうでしょうか?
Re: 急ぎでお願いします
9999→9998とうまくいきましたが
9999の横に文字化けが発生しています。9998になっても消えません。
資料というのはどのような資料をお見せしたらいいですか?
9999の横に文字化けが発生しています。9998になっても消えません。
資料というのはどのような資料をお見せしたらいいですか?
Re: 急ぎでお願いします
タイマのレジスタに関する資料です。
例えば、この
*((unsigned short *)0x0400010E) = 0x0084;
0x0400010Eというアドレスや0x0084という数値はどこから持ってきたものなのですか?
例えば、この
*((unsigned short *)0x0400010E) = 0x0084;
0x0400010Eというアドレスや0x0084という数値はどこから持ってきたものなのですか?
Re: 急ぎでお願いします
私にもわからないです。
アドレス割り当て
0x04000100番地 タイマ0 タイマ設定レジスタ
0x04000102番地 タイマ0 タイマ設定レジスタ
0x04000104番地 タイマ0 タイマ設定レジスタ
初期値はすべて0
タイマ0のみ,カスケード接続不可
と資料には書いてあります。
gba1.h: ヘッダファイル
gba_io1.c: 入出力処理を集めたソースコード
locate(cx, cy)
prints(“abcdef”)
printh(i)
printn(i)
print_ascii(ascii_num)
draw_point(x, y)
8x8ascii.h: 文字フォントデータ
crt.S: C言語ランタイムスタートアップ
gcc.ls: リンカスクリプト
Makefile: メイクファイル
というのも資料にあります。
全然わからないですよね?
すみません
アドレス割り当て
0x04000100番地 タイマ0 タイマ設定レジスタ
0x04000102番地 タイマ0 タイマ設定レジスタ
0x04000104番地 タイマ0 タイマ設定レジスタ
初期値はすべて0
タイマ0のみ,カスケード接続不可
と資料には書いてあります。
gba1.h: ヘッダファイル
gba_io1.c: 入出力処理を集めたソースコード
locate(cx, cy)
prints(“abcdef”)
printh(i)
printn(i)
print_ascii(ascii_num)
draw_point(x, y)
8x8ascii.h: 文字フォントデータ
crt.S: C言語ランタイムスタートアップ
gcc.ls: リンカスクリプト
Makefile: メイクファイル
というのも資料にあります。
全然わからないですよね?
すみません
Re: 急ぎでお願いします
ここを参考にすると
http://jaco.ec.t.kanazawa-u.ac.jp/edu/GBA/hard.html
*((unsigned short *)0x0400010E) = 0x0084; // タイマ3 制御設定(タイマON,割込みOFF,カスケードON,プリスケーラなし)
↓
*((unsigned short *)0x0400010E) = 0x0082; // タイマ3 制御設定(タイマON,割込みOFF,カスケードON,プリスケーラなし)
でどうですか?
http://jaco.ec.t.kanazawa-u.ac.jp/edu/GBA/hard.html
*((unsigned short *)0x0400010E) = 0x0084; // タイマ3 制御設定(タイマON,割込みOFF,カスケードON,プリスケーラなし)
↓
*((unsigned short *)0x0400010E) = 0x0082; // タイマ3 制御設定(タイマON,割込みOFF,カスケードON,プリスケーラなし)
でどうですか?
Re: 急ぎでお願いします
0になるとタイマ停止します
文字化け原因はよく分かりません。
追記:
/* 入力値valの桁数設定 */
i = 3;
↓
/* 入力値valの桁数設定 */
i = 4;
でどうですか??
while (1) {
/* タイマ3 カウント値読込み */
time = *((unsigned short *)0x0400010C);
/* time 表示位置設定 */
locate(8, 3);
if(time > 0){
display_time(time);
}else{
/* タイマ停止 */
*((unsigned short *)0x0400010E) = 0x0000;
prints("0になりました");
}
}
追記:
/* 入力値valの桁数設定 */
i = 3;
↓
/* 入力値valの桁数設定 */
i = 4;
でどうですか??
Re: 急ぎでお願いします
開発環境が手元にないのでこれ以上調べようが無いんですが...。
期限などはあるのでしょうか?
期限などはあるのでしょうか?
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
Re: 急ぎでお願いします
最初に投稿していただいたプログラムを実行するとどうなりますか??
・文字化けを起こさないか?
・出力が、[99999999][99989998]といった風にならないか?
また、先ほど文字化けを起こすとおっしゃっていましたが、どういった風な出力になるのか教えていただけますでしょうか?
具体的にお願いします。
例)[9999-'(F*@]:a]
・文字化けを起こさないか?
・出力が、[99999999][99989998]といった風にならないか?
また、先ほど文字化けを起こすとおっしゃっていましたが、どういった風な出力になるのか教えていただけますでしょうか?
具体的にお願いします。
例)[9999-'(F*@]:a]
Re: 急ぎでお願いします
私が最初に乗せたプログラムで実行しますと
9999→9998となり99999999→99989998とはならず
文字化けもしません。
文字化けは
例)[9999-'(F*@]:a]
と同じようになりますが、
文字化けの文字はアルファベットでもなく記号ばかりです。
9999→9998となり99999999→99989998とはならず
文字化けもしません。
文字化けは
例)[9999-'(F*@]:a]
と同じようになりますが、
文字化けの文字はアルファベットでもなく記号ばかりです。
Re: 急ぎでお願いします
8x8ascii.hの中身を見せてもらえますか?
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
Re: 急ぎでお願いします
エラーが出て実行できません。
crt.o(.text+0x0):undefined reference to 'main'
とエラーが出てきました。
ちなみに文字を表示させるのは
8x8ascii.hよりアルファベットしか
表示できないようなので
「OPEN」と表示させることにしたいと思います。
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
Re: 急ぎでお願いします
ですか、、、それが日本語を出力しようとしたからなのかわからないので以下のように変更してください。yumi さんが書きました:エラーが出て実行できません。
8x8ascii.hよりアルファベットしか
表示できないようなので
while (1) {
/* time 表示位置設定 */
locate(8, 3);
/* タイマ3 カウント値読込み */
if (70-*((unsigned short *)0x0400010C) > 0)
{
time = 70-*((unsigned short *)0x0400010C);
display_time(time);
}
else
{
prints("OPEN");
}
}
「日本を出力」となっていたので日本語に編集(日本を出力なんてできないだろっwww)
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 急ぎでお願いします
yumiさん
削除依頼についてですが、理由をお聞きしても良いでしょうか。
ここのフォーラムルールをご覧になったかどうか解りませんが、ここの投稿記事は基本的に削除できません。
また、不当に削除、記事を編集された場合は、こちら側で記事を元に戻すことになっています。
それは必要な情報だけ聞き出して全ての記事を削除するという行為が回答して下さった方々へ非常に失礼な行為だからです。
もし逆の立場だったらどうでしょう。
yumiさんが熱心に回答した記事が、次の日に見ると忽然とと削除されていたら・・。
私はbitter_foxさんとh2so5さんが別の場で、一生懸命回答をする為に話し合いをされているのを見ていました。
あれだけ熱心に取り組んで回答された記事を削除することは私には出来ません。
もし事情があれば、それを考慮の上、一部だけ削除ということはできるかもしれませんが、
それは最小限にして頂きたいという気持ちでいます。
削除依頼についてですが、理由をお聞きしても良いでしょうか。
ここのフォーラムルールをご覧になったかどうか解りませんが、ここの投稿記事は基本的に削除できません。
また、不当に削除、記事を編集された場合は、こちら側で記事を元に戻すことになっています。
それは必要な情報だけ聞き出して全ての記事を削除するという行為が回答して下さった方々へ非常に失礼な行為だからです。
もし逆の立場だったらどうでしょう。
yumiさんが熱心に回答した記事が、次の日に見ると忽然とと削除されていたら・・。
私はbitter_foxさんとh2so5さんが別の場で、一生懸命回答をする為に話し合いをされているのを見ていました。
あれだけ熱心に取り組んで回答された記事を削除することは私には出来ません。
もし事情があれば、それを考慮の上、一部だけ削除ということはできるかもしれませんが、
それは最小限にして頂きたいという気持ちでいます。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 急ぎでお願いします
著作権保有者から削除依頼があった為、投稿記事のソースコードを削除しました
課題などで配布されたソースコード一式をアップロードする行為は著作権違反行為になります。
今回せっかく熱心に回答して下さったbitter_foxさん、h2so5さんの投稿されたソースコードも一式削除しなければならなくなりました。
どうか質問される際は著作権にご注意の上、このようなことにならないよう十分ご注意ください。
課題などで配布されたソースコード一式をアップロードする行為は著作権違反行為になります。
今回せっかく熱心に回答して下さったbitter_foxさん、h2so5さんの投稿されたソースコードも一式削除しなければならなくなりました。
どうか質問される際は著作権にご注意の上、このようなことにならないよう十分ご注意ください。