1 :
デフォルトの名無しさん:
EEPROMを使って、データの読み書きが出来るプログラムを作ろうとしてるのですが
参考文献が少なく八方塞です
知ってる方がいれば教えてください
開発環境
C言語
H8マイコン
お断りします。
まず、データシート読もうな?
4 :
デフォルトの名無しさん:2008/07/01(火) 21:04:07
>>3 データシートって何でしょうか;
EEPROMしかない状態で…
5 :
デフォルトの名無しさん:2008/07/01(火) 21:05:48
EEPROMって何?
6 :
デフォルトの名無しさん:2008/07/01(火) 21:14:40
>>5 電気的にデータを書き換えられるROMです
データロガーとして使いたいのですが、予想以上に苦戦してます
データシートなしで何をするつもりだ?とりあえず型番からメーカサイトを探して
データシートを入手して、それからだ。
8 :
デフォルトの名無しさん:2008/07/02(水) 03:10:20
>8
あと、sageろ。
10 :
1:2008/07/02(水) 11:33:33
型番分かりました
24lc64です
今から翻訳して読んでみます
すぐに過去の遺物となる言語スレが林立する中で、こういう話題はいいね。
I2Cの石か・・・
CPUにI2Cインターフェースなかったら、ちょっとメンドウかもな
14 :
1:2008/07/03(木) 13:19:26
15 :
1:2008/07/03(木) 13:29:04
>>12 I2C通信ならしたことあるのでたぶん大丈夫だと思います
16 :
1:2008/07/04(金) 16:43:59
とりあえず、回路組み終えました
ただ、どのような命令で動くのかまったく分からないです
おいw
>>13のデータシート読んだんじゃないのかよwww
18 :
1:2008/07/04(金) 17:18:26
>>17 読んだのですがorz
月曜にまた出直してきます
読むのと理解するのは別の概念、理解の後の実践もね
20 :
1:2008/07/07(月) 14:17:55
21 :
1:2008/07/09(水) 10:36:46
すごく初歩的な質問なんでが;
EEPROMに書き込めるデータってcharだけじゃないですよね?
>>21 えーと、かなり理解に苦しむ質問なんだけど・・・
2バイトデータを書きたいとかそういう話し?
だったら、自分でエンディアン決めて1バイトずつ書けばいい
23 :
1:2008/07/09(水) 12:40:24
>>22 今のところなんとか英数字を書き込めるところまで来たのですが、
intなどではできず、charのみでしか書き込めないんですよorz
普通ならintとかでもできるんですかね?
>>23 1アドレスに書けるのは8bitなんだから、
intを書こうとしたら、8bitずつに分解して書く必要があるんだけど
ちゃんとやってる?
25 :
1:2008/07/09(水) 13:46:25
>>24 一応今は半角数字一文字ずつの入力を試しにしてるのですけど;
というか…
もしかしてintでもa='1'のような表記をしないと書き込めないのですか?
>>25 ごめん、付き合い切れないw
ポインタとかアドレスとかCの基礎やりなおして
27 :
1:2008/07/09(水) 14:22:12
>>26 何か解りづらいところでもあったでしょうか;
ポインタとアドレスはある程度把握してます
まぁ、がんばります
28 :
1:2008/07/09(水) 14:28:49
ああ、
''はアドレスに代入してたのですね
解りました
また単発質問スレ立ててボケが・・・
と思ってたけど、1の相手するだけで1000行きそうだなw
しかし、みんなやさしいな
int型は4バイトかな?
int a = 0x00745687;
char b[4];
memcpy(&b, &a, sizeof(int));
で、b配列に入ってるデータを1つずつ書き込む。
OK?
>>29 >また単発質問スレ立ててボケが・・・
それでも途中までは
「このスレが役に立つと思う人もいるかも知れない」
と思ってたんだが、
>>21 で腰が砕けそうになった。
>>1 は味噌汁で顔洗って出直した方がいい。
つーか、>28が奮っている。
33 :
1:2008/07/14(月) 14:50:22
お久しぶりです
皆様すいませんorz
ちょっと以前使ってたCの本最初から読み返してきましたorz
地道にがんばっていきます…
気が向いて死ぬほど暇なときにでも相手してくれたら嬉しいですorz
>>30 分かりました
ありがとうございますorz
34 :
デフォルトの名無しさん:2008/07/26(土) 23:19:34
さらっと便乗質問させてください。
秋月のフラッシュromライタ LEPER-3Cの27XXX設定項目に select algorithmってのがあって、
項目が
Q-100uS
Q-50us
N-100uS
I-500uS
I-1ms
とまぁ、選択できるのですが、
これはいったい何の項目なのでしょう?
そのライタ使ったことないので、あてずっぽうで書くと
書き込みに必要なパルス幅じゃね?
てか、マニュアルとかないのか・・・それ
36 :
デフォルトの名無しさん:2008/07/26(土) 23:53:58
>>36 書き込みアルゴリズムの違いでしょ。
NはNECとか、IはIntelじゃね?
# Qはしらねw
QUALCOMMとQuantumしか思いつかねえ
メーカじゃないかもよ。その辺りはデバイス屋さんのいそうな板で聞けばいいんじゃね?
ハー、今時の人はCPUの仕様もマシン語も知らなくても、どころか
コンピュータのハードウェアが何やってるか全くイメージが無くても
H8マイコンとC言語を使ってROM焼きをやろうとするのか。
いや、時代は変われば変わるもんだ!(いくら何でも無謀だ)
>1さんはLittle EndianとBig Endianの区別も無さそう。
つーか、整数の2進数表現や16進数表現を理解してるんだろうか?
自分も今EEPROMについて勉強してるのですが
参考に出来る資料とかありますか?
データシートがあればそれで充分だろ
>42
ある程度、(ハードウェア的に)メモリを扱う事に慣れていれば
>43さんの言う通り、その目的に使えそうなモノのデータシートを
読み比べれば十分だと思うが、どんなメモリコントロール回路も
設計した事無いとか、Flash MemoryとEEPROMの区別が言えないとか
言う状態ならこんな本を読むのも良いかも。
ttp://www.cqpub.co.jp/hanbai/books/32/32701.htm さらにもし >1さんのような状態なら、まずは「コンピュータハードウェア入門」
とか「マイコン入門」みたいなコンピュータはどういう風にデータを
いろんなメモリに読み書きしてるか?とか、その内部表現は?とかを
解説している本を読んだ方が良いかも知れません。
整数の二進数表現とかLittle EndianかBig Endianかとか、
バイトマシンとワードマシン(最近ほとんど無いけど)の区別とか
もっと基本的にノイマンアーキテクチャとはどういうものかとか
そう言う事をまず知った方が良いかと思います。
>>43,44,45
なるほど
ありがとうございます
age
ageてないし
49 :
デフォルトの名無しさん:2008/10/31(金) 16:52:25
ageてないか
age…てるかも?
51 :
デフォルトの名無しさん:2009/01/21(水) 18:28:45
for(x = 1000,j=0;x >= 1;x/=10,j++){
tx_data[j]=('0'+((data/x)%10));
}
この形でintをcharに変換して書き込んでるんだけど、負の数が書き込めません
どうしたらいいですか?
>51
整数の数値を10進文字列化して書き込もうとしてるんだよね?
sprintf関数が使えない環境なの?
もしそうなら自分で整数の符号を判定してマイナスなら
正負の符号を反転してから10進数として文字列化し、
頭に "-" 記号を付けるしかないんじゃ?
EEPROMに関係ないC言語の話だけど。
EEPROMなんかに書き込むときは
2進数(2の補数)形式のまま書き込んで、
表示するときに10進数に直す方が
普通だとは思うけどね。
余分な記憶容量を食わないから。
そのデータをそのまま通信路に流したいとか
特別な理由があれば別だが。
54 :
デフォルトの名無しさん:
>>52 ありがとうございます
その方法で無事出来ました
>>53 確かにその方法のほうが良いかもしれませんね
ありがとうございます、検討してみます