前提・実現したいこと
PICでMCCを使ってS-35390A(リアルタイムクロック)を実装したい
発生している問題・エラーメッセージ
I2Cでデータを読み込めない。
該当のソースコード
c
1#include "mcc_generated_files/mcc.h" 2#include "mcc_generated_files/examples/i2c_master_example.h" 3 4uint8_t g_i2c[20]; 5 6/* 7 Main application 8*/ 9void main(void) 10{ 11 // initialize the device 12 SYSTEM_Initialize(); 13 14 // When using interrupts, you need to set the Global and Peripheral Interrupt Enable bits 15 // Use the following macros to: 16 17 // Enable the Global Interrupts 18 INTERRUPT_GlobalInterruptEnable(); 19 20 // Enable the Peripheral Interrupts 21 INTERRUPT_PeripheralInterruptEnable(); 22 23 // Disable the Global Interrupts 24 //INTERRUPT_GlobalInterruptDisable(); 25 26 // Disable the Peripheral Interrupts 27 //INTERRUPT_PeripheralInterruptDisable(); 28 29 I2C_ReadNBytes(0x60, &g_i2c[0], 1); 30 // この後にg_i2c[0]に0しか入っていない 31 32 while (1) 33 { 34 // Add your application code 35 } 36}
試したこと
MCCの設定は、
Interrupt Driven:ON
Serial Protocol:I2C
Mode:Master
I2C Clock Frequency(Hz):100000
Enable I2C Interrupt:ON
ピン設定はデフォルトで変更していません。
CCS社のコンパイラでは動作したので配線は問題ありません。
補足情報
MCCで自動生成される「i2c_master_example.h」をインクルードしています。
データシートを確認すると、「マスタデバイスから最後のデータバイトに対しては、アクノリッジ信号を入力しない (NO_ACK) でください。」とあります。そのようなことがMCCで設定可能なのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/27 15:01
2020/11/28 01:13 編集