2014年1月5日日曜日

でむさんのHMC5883L方位取得関数を追試中


実物で確認していませんので、eepromの読み書きが正しく行われているかどうか自信がありません。ごめんなさい。なので。

C-Style for e-GadgetのEEPROM関係を紹介しておきます。

CStyleEG_V130702のフォルダの中にある
D_Eio.c
D_Eio.h
D_Eio.o
が、そうです。
EGシリーズ用の関数のようです。
eDES CORE用のC-Styleにも微妙に違うものがあります。
中身はつぎのとおりですので修正して使ってみてください。
 e-GadgetやTj3Bを買わなくてもC-Styleはダウンロードさせていただけますので
たいへん、ありがたいてすね。
三つのファイルをBuild_V130515のフォルダにコピーして
#include "D_Eio.h"を書き加えてくたさい。関数名もeep_getcとeep_putcに書き換えます。

//------------------------------------------------------------------------------
// EEPROM関係
// PIC18F2520 Internal:8.00MHz with PLL, Flash:16K,SRAM:768, EEPROM:256
// 2009.11.13                                            murata@daisendenshi.com
//------------------------------------------------------------------------------
#define D_EIO
#include "D_Main.h"
#include "D_Tio.h"
#include "D_Sio.h"
#include "D_I2c.h"

#include "D_Eio.h"
//------------------------------------------------------------------------------
// EEPROMから1バイト読込み
BYTE eep_getc(BYTE adrs)
{
BYTE data;

EEADR = adrs;
EECON1bits.EEPGD = 0;
EECON1bits.CFGS = 0;
EECON1bits.RD = 1;
data = EEDATA;
return(data);
}
//------------------------------------------------------------------------------
// EEPROMへ1バイト書込む (1byte Write Cycle : 3msec)
void eep_putc(BYTE adrs, BYTE data)
{
EEADR = adrs;
EEDATA = data;
EECON1bits.EEPGD = 0;
EECON1bits.CFGS = 0;
EECON1bits.WREN = 1;

INTCONbits.GIE = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
while (EECON1bits.WR){
;
}
INTCONbits.GIE = 1;

EECON1bits.WREN = 0;
}
//------------------------------------------------------------------------------

0 件のコメント: