c言語でストップウォッチを作りたいと思ったのですが、作り方が全く分かりません。
c言語に関しては初心者です。
どなたかプログラムお願いします;;
ちなみに、DSでも動くストップウォッチを作りたいです
【※管理人がタイトルを変更しました(11/28 0:49)】
C言語でストップウォッチを作りたい 【ニンテンドーDS】
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: c言語
DSなら、このページが理解出来るぐらいの知識は必要ですよ。ソフトウェアだけでなく英語やハードウェアの知識も必要となります。
「GBATEK」
http://nocash.emubase.de/gbatek.htm
一応日本語のサイト。GBATEKに比べると情報は少ないです。
「NDS開発Wiki - CPU」
http://www35.atwiki.jp/hikipuro/pages/75.html
まず、普通のC言語を知識を深めましょう。
自在に作れるようになったら次の段階として考えてはどうでしょうか?
「GBATEK」
http://nocash.emubase.de/gbatek.htm
一応日本語のサイト。GBATEKに比べると情報は少ないです。
「NDS開発Wiki - CPU」
http://www35.atwiki.jp/hikipuro/pages/75.html
まず、普通のC言語を知識を深めましょう。
自在に作れるようになったら次の段階として考えてはどうでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: c言語
まずは、DSを抜きにして、C言語の標準関数でストップウォッチを作ってみてはいかがでしょう?
・・ということでC言語の標準関数のみで作れるストップウォッチを作ってみました。
こうすることで、Start関数をコールしてから、GetDiffをコールするまでの時間がミリ秒で取得可能です。
StartをコールせずにGetDiffを使い続ければラップタイムを表示することが出来ます。
ちなみに精度は環境依存します。
DSがどんな環境なのか知りませんが、Linux環境ならgettimeofdayを使えばマイクロ秒単位で計測可能です。
DSにも時刻を取得するAPIはあるでしょうから、それを上記に当てはめれば良いかと思います。
・・ということでC言語の標準関数のみで作れるストップウォッチを作ってみました。
#include <stdio.h>
#include <time.h> //clock()用
#include <windows.h> //Sleep用
clock_t StartClock;
void Start(){
StartClock = clock();
}
int GetDiff(){
return clock() - StartClock;
}
int main(void){
Start();
Sleep(1000);
printf("経過時間は%d[ms]です。\n", GetDiff() );
return 0;
}StartをコールせずにGetDiffを使い続ければラップタイムを表示することが出来ます。
ちなみに精度は環境依存します。
DSがどんな環境なのか知りませんが、Linux環境ならgettimeofdayを使えばマイクロ秒単位で計測可能です。
DSにも時刻を取得するAPIはあるでしょうから、それを上記に当てはめれば良いかと思います。