请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS570LS1227 您好!
我一直在使用 N2HET 仿真 I2C 应用代码、我可以看到发送、接收和 NACK 中断。 如何从 het1HighLevelInterrupt()函数获取停止条件检测中断?
#pragma CODE_STATE(het1HighLevelInterrupt, 32) #pragma INTERRUPT(het1HighLevelInterrupt, IRQ) void het1HighLevelInterrupt(void) { uint32_t vect = hetREG1->OFF1; switch (vect) { case 11: /*---------------------------> Transmit interrupt */ if(Data_Send_HET<3) { HetI2CPutData(*I2C1_txptr++, IntEna); Data_Send_HET++; } if(Start_Repeat==1) { if(Data_Send_HET<5) { HetI2CPutData(*I2C1_txptr++, IntEna); Data_Send_HET++; } else if(Data_Send_HET==5) { RW = 1; //Read IntEna = 0;//no transmit interrupt HetI2CPutAddr(I2C2_ADDR, RW, 2, IntEna, 1);//now, start to receive two data bytes and generate stop bit } } break; case 15: /*---------------------------> Receive interrupt */ *I2C1_rxptr++ = (hetRAM1->Instruction[0x2C].Data>>8) & 0xFF; // read the data Data_Rece_HET++; break; case 18: /*---------------------------> No ACK interrupt */ case 29: /* timeout2*/ case 8: /* timeout6*/ case 2: /* timeout9*/ default: /* timeout + phantom interrupt, clear flags and return */ while(1); break; } } /* USER CODE BEGIN (6) */ /* USER CODE END */
此致