トップページ > dsPIC入門 > dsPICでI2C(8)

EEP-ROMのテスト

ソースコード:EEP-ROMテスト関数

//********************************************************************
//I2CでEEPROM書き込みテスト @dsPIC30F4012
//********************************************************************



//********************************************************************
//ヘッダファイル
#include "p30f4012.h"
#include "uart.h"


//********************************************************************
//コンフィギュレーション
_FOSC(CSW_FSCM_OFF & XT_PLL8);     //10MHzセラロックを使っているのでクロックは80MHz。
_FWDT(WDT_OFF);
_FBORPOR(PBOR_ON & BORV_20 & PWRT_64 & MCLR_EN);
_FGS(CODE_PROT_OFF);
//********************************************************************
//UARTの設定パラメータ

unsigned int config1 = UART_EN & UART_IDLE_CON & UART_ALTRX_ALTTX & UART_NO_PAR_8BIT & UART_1STOPBIT
                     & UART_DIS_WAKE & UART_DIS_LOOPBACK & UART_DIS_ABAUD;

unsigned int config2 = UART_INT_TX_BUF_EMPTY & UART_TX_PIN_NORMAL & UART_TX_ENABLE & UART_INT_RX_CHAR 
                     & UART_ADR_DETECT_DIS & UART_RX_OVERRUN_CLEAR;

  


//********************************************************************
//メイン関数

int main(void)
{
 OpenUART1(config1,config2,10);
 putsUART1("\n\rSTART!!\n\r");

 //ポートの設定、I2Cの設定
 TRISE = 0x00;
 PORTE = 0x00;
 init_I2C();
 
 //EEP-ROMへデータを書き込む(テストとして、0番地に0x55を書き込む)
 EEPROM_write(0x0000,0x55);

 //EEP-ROMのデータを読み込み、LEDへ表示
 PORTE = EEPROM_read(0x0000);

 while(1);
}

プロジェクトにソースコードを追加

UARTにつなげば、デバッグできます。

“phase1”、“phase2”・・・というのは、書き込み関数と読み出し関数内で正常にROMからACKが返ってくるたびに送信されます。 もしとこかのphaseで止まっている場合は、そこで不具合が生じているとわかります。




前へ   戻る