トップページ > dsPIC入門 > dsPICでI2C(8)
//******************************************************************** //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); }
“phase1”、“phase2”・・・というのは、書き込み関数と読み出し関数内で正常にROMからACKが返ってくるたびに送信されます。 もしとこかのphaseで止まっている場合は、そこで不具合が生じているとわかります。