Jump to content
43oh

Feroze

Members
  • Content Count

    16
  • Joined

  • Last visited

  1. Does the "Change Theme" Work now ?
  2. THank you very much , now i can use the Code Tags
  3. bluehash, Thank you for resetting my THEME setting. I was not able to access the code tags as the mobile theme was activated (as i have mentioned in the other topic)I will do as mentioned, Thank you
  4. The 'I2CHandler' is registered in the 'startup_ccs.c'. I just wondered if there are individual interrupt routines that can be called, but there seems to be only 2 Interrupt handlers in the ' 'startup_ccs.c' files one for I2C0 and other for I2C1. (in AVR we have individual ISR's available so i thought there might be similar) void I2CHandler ( uint8 index ) { .. .. .. /// SLAVE transmitter if ( status == I2C_SLAVE_ACT_TREQ ) // Master has requested data { ISR_I2C_SlaveDataTx(baseS); } } void ISR_I2C_SlaveDataTx(uint32 baseS) { I2CSICR |= (1 << DATAIC); // Clear I2C TREQ/RREQ
  5. The code that i wrote in my previous post will be a Blocking code, so i wrote this : This Routine will be Interrupt based. When Ever there is a TREQ interrupt this routine should be executed. #define Max_I2C_Tx_Size 13 // Maximum Number of Bbytes to be transmitted #define TRUE 1 #define FALSE 0 unsigned char Data_Encode_OTFlag = TRUE; // One time Flag unsigned char Data_Count_var = 0; void ISR_I2C1_SlaveDataTx(void) { DATAIC |= (1 << DATAIC); // Clear I2C TREQ/RREQ Interrupt if(Data_Encode_OTFlag) { Data_Encode_OTFlag = FALSE; // One Time Flag Da
  6. I am having the same problem, Please help
  7. This is what i can think of : /// SLAVE mode if ( I2CSlaveIntStatus ( baseS , true ) ) { .. .. .. .. /// SLAVE transmitter if ( status == I2C_SLAVE_ACT_TREQ ) // Master has requested data { I2CSlaveDataTx(baseS); } } void I2C_SlaveDataTx(uint32 baseS) { for(unsigned char tmp_var1 = 0; tmp_var1 < Max_I2C_Tx_Size; ) { if((I2CSCSR & (1 << TREQ))) { I2CSlaveDataPut ( baseS , DATA_BUFFER[tmp_var1] ); tmp_var1++; } } }
  8. As of now the requirement is that a MAXIMUM of 13 Bytes have to be sent and not more than 13. In this case , as you have mentioned, i believe the master need not mention the data length. Does that mean that the Transmit Request Bit will be set High by the Master after each BYTE being Received ?or do we have to program the MASTER module to Request the Data for 13 bytes (13 bytes being hard coded in the MASTER ??) ?
  9. OK so i just now googled and found your API here : http://e2e.ti.com/support/microcontrollers/stellaris_arm/f/471/t/235926.aspx My doubt is, in the function 'I2CReadData' \param ucReg is the register to start reading from. What will be the 'ucReg', can i point it to some buffer at the slave end ? Can this read from the Slave (LM3S) directly or the SLAVE have to be transmitting the data at the same time ?
  10. I am most probably wrong but is the this going in the right direction ? /// SLAVE mode if ( I2CSlaveIntStatus ( baseS , true ) ) { .. .. .. .. /// SLAVE transmitter if ( status == I2C_SLAVE_ACT_TREQ ) // Master has requested data { I2CSlaveDataTx(baseS); } } void I2C_SlaveDataTx(uint32 baseS) { for(unsigned char tmp_var1 = 0; tmp_var1 < Max_I2C_Tx_Size; tmp_var1++) { I2CSlaveDataPut ( baseS , DATA_BUFFER[tmp_var1] ); } } The interrupt handler will call the ‘I2CSlaveDataTx', the \for loop\ will transmit the data (Max_I2C_Tx_Size bytes) through I2C. If i keep transmitting th
  11. My question was about the Burst Mode for SLAVE. There is no specification or example found. Not mentioned in the Driver Library nor in the datasheet of the Micro.
  12. Yes it will be the slave , but the Slave will have to transmit 13 bytes of data to the Master (when requested)
  13. I have infact already gone through this code. I dont think this transmits multi bytes (in my case i need to transmit 13 bytes)
  14. I will right-away look at it. couldnt find anything related to burst mode in google also
×
×
  • Create New...