working
This commit is contained in:
		
							parent
							
								
									123ad0de95
								
							
						
					
					
						commit
						b308d6709e
					
				
					 2 changed files with 14 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -92,7 +92,7 @@ I2CSlaveMsg initialReply =
 | 
			
		|||
 | 
			
		||||
// Response to received messages
 | 
			
		||||
I2CSlaveMsg echoReply = {  /* this is in RAM so size may be updated */
 | 
			
		||||
  0,                    /* filled in with the length of the message to send */
 | 
			
		||||
  MATRIX_ROWS / 2,                    /* filled in with the length of the message to send */
 | 
			
		||||
  txBody,               /* Response message */
 | 
			
		||||
  NULL,                 /* do nothing special on address match */
 | 
			
		||||
  clearAfterSend,       /* Clear receive buffer once replied */
 | 
			
		||||
| 
						 | 
				
			
			@ -140,8 +140,8 @@ void twi2c_slave_message_process(I2CDriver *i2cp) {
 | 
			
		|||
 | 
			
		||||
  // size_t len = i2cSlaveBytes(i2cp);         // Number of bytes received
 | 
			
		||||
 | 
			
		||||
  memset(txBody, 0, MATRIX_ROWS / 2 * sizeof(matrix_row_t));
 | 
			
		||||
  // matrix_copy(txBody);
 | 
			
		||||
  // memset(txBody, 0, MATRIX_ROWS / 2 * sizeof(matrix_row_t));
 | 
			
		||||
  matrix_copy(txBody);
 | 
			
		||||
 | 
			
		||||
  echoReply.size =  MATRIX_ROWS / 2;
 | 
			
		||||
  i2cSlaveReplyI(i2cp, &echoReply);
 | 
			
		||||
| 
						 | 
				
			
			@ -153,8 +153,8 @@ void twi2c_slave_message_process(I2CDriver *i2cp) {
 | 
			
		|||
 */
 | 
			
		||||
void clearAfterSend(I2CDriver *i2cp)
 | 
			
		||||
{
 | 
			
		||||
  echoReply.size = 0;               // Clear receive message
 | 
			
		||||
  i2cSlaveReplyI(i2cp, &initialReply);
 | 
			
		||||
  // echoReply.size = 0;               // Clear receive message
 | 
			
		||||
  // i2cSlaveReplyI(i2cp, &initialReply);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -179,13 +179,16 @@ void twi2c_slave_init(void) {
 | 
			
		|||
  I2C_DRIVER.slaveTimeout = MS2ST(100);       // Time for complete message
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  i2cSlaveConfigure(&I2C_DRIVER, &echoRx, &initialReply);
 | 
			
		||||
  // i2cSlaveConfigure(&I2C_DRIVER, &echoRx, &echoReply);
 | 
			
		||||
  // i2cSlaveConfigure(&I2C_DRIVER, &echoRx, &initialReply);
 | 
			
		||||
 | 
			
		||||
  memset(txBody, 0, MATRIX_ROWS / 2 * sizeof(matrix_row_t));
 | 
			
		||||
 | 
			
		||||
  i2cSlaveConfigure(&I2C_DRIVER, &echoRx, &echoReply);
 | 
			
		||||
 | 
			
		||||
  // Enable match address after everything else set up
 | 
			
		||||
  // i2cMatchAddress(&I2C_DRIVER, slaveI2Caddress/2);
 | 
			
		||||
  i2cMatchAddress(&I2C_DRIVER, slaveI2Caddress/2);
 | 
			
		||||
//  i2cMatchAddress(&I2C_DRIVER, myOtherI2Caddress/2);
 | 
			
		||||
 i2cMatchAddress(&I2C_DRIVER, 0);  /* "all call" */
 | 
			
		||||
 // i2cMatchAddress(&I2C_DRIVER, 0);  /* "all call" */
 | 
			
		||||
 | 
			
		||||
  printf("Slave I2C started\n\r");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue