プロフィール

MMC07

Author:MMC07
群馬県より2004大会から参加しています。

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
天気予報

-天気予報コム- -FC2-
カレンダー(月別)
09 ≪│2017/10│≫ 11
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 31 - - - -
FC2カウンター
QRコード
QRコード
ブロとも申請フォーム

この人とブロともになる

スポンサーサイト--------(--)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LOGに挑戦中 その22007-03-05(Mon)

たくさんコメントを頂き、本日も挑戦。テキストを見たりプログラムを確認したりとかなりの時間を費やした。どうしても3月中に完成をさせたいものである。3月中に完了しないと横須賀大会がきつくなる。

この件については本日の収穫なし。コメントを頂きながら申し訳ないことである。

終了間際に、内蔵RAMはできるのかと思いつき挑戦。少々手間取ったもののLOG取り完了。内蔵RAMなのでLOGが取れる時間と項目は寂しいが、自分の走りをデータとして見ることができて感動。10秒ぐらいしかLOGが取れないので30m限定でHOMEコースを走行。全国大会以来の走行であった。スピード設定は控えめで。全国の設定は坂がもの凄い安全走行となっていた。もう少しうまく走れば0.3秒ぐらいは何とかなるでしょう。

内蔵

やはり外部ROMで豪華なLOGを取りたいものである。
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

コメント

お初です。

内部メモリがOKで外部メモリが駄目ということは、送信が出来ていないのか返答が無いのか、
(公式プログラム見てないので)
何かしらの無限ループから抜け出せない状態なんでしょうかね?

興味ありますんで、頑張ってください。(酔ってるんで言ってることに責任取れません)\

あと考えられることは

init()において・・
PADDR=0x56になっているか。下位4ビットは6でなくてもよいが、上位4ビットは5でなくてはならない。

割り込みの中にあるsetPageWriteI2CEeprom( saveIndex, 8, saveData );のパラメータの真ん中の数字が2のn乗の値になっているか。(これはあまり関係ない・・かもしれない)

内部メモリで記録できたのだから、先日コメントしたメモリ関係でないことは確か。やはり・・入出力ポートの設定しか考えられないのだが・・

MCC 様

コメントありがとうございます。まさに当方もLOGの無限ループ状態です。すぐに問題が解決しないからこそ、完成したときの喜びは120%になることでしょう。がんばります。

TMCC会長 様

init()において・・
PADDR=0x56
はROMが接続されている入力ポートを設定しているのですよね。
内臓RAMはテキスト通りそのままですが、当方のマイコンカーはリセット同期や相補PWMではないのでPAにはROMを接続していません。P8に接続してP8DRとP8DDRを設定しています。

わかった

I2c_eeprom.cの以下はポートA用ですので、以下のプログラムをポート8にあわせて修正しなくてはなりません。

変更前
/*
EEP-ROMの接続ポートに合わせてDRとDDRを設定してください。
*/
#define EEP_DR PADR /* EEP-ROM接続ポートのDR */
#define EEP_DDR PADDR /* EEP-ROM接続ポートのDDR */

/*
EEP_DDR_DATAの値は、
SCL端子:入力 SDA端子:入力 に設定して下さい。
他の端子は、接続している機器に合わせて設定して下さい。
*/
#define EEP_DDR_DATA 0x57 /* EEP-ROM接続ポートのDDRへ設定する値*/

/
変更後
#define EEP_DR P8DR
#define EEP_DDR P8DDR
#define EEP_DDR_DATA 0x57

 ここは0x57と設定しているが、EEPROMのほかになにも接続されていなければ0x5Fとなります。

今一度、確かめてみてください。

RE:わかった

I2c_eeprom.cもEEPROMの接続にあわせて修正してあるのです。
走行プログラム自体に問題があるのかな。

ログについて

こんばんわ。BLOGにたどりつきました。
確認してください。

バグがないi2c_eeprom.cを使ってますか?
→#define i2c_SDA_0(); EEP_DR &= ~I2C_SDA;\
→ EEP_DDR = (ddr_dummy |= I2C_SDA); /* SDA="0" */

ウエイトをつけてみてください。
→I2C_WAIT

書き込みはこの関数使っていますか?
→setPageWriteI2CEeprom()

書き込みバイト数は短いですか(16Byte以内?)?
周期は10ms以上で書き込みしていますか?

メインループに関数付け加えてありますか?
→I2CEepromProcess()

確認してみてください。

RE:ログについて

ウエイトをつけてみてみました。
→I2C_WAIT
他にも何箇所かやっています。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。