Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/14/06 05:45
Read: times


 
#107379 - Bit Bangin Works fine.
Responding to: ???'s previous message
Dear friends,

I wrote a small routine that does read this ADC with bit banging instead of Hardware I2C. Suprisingly it works fine. I glow leds and keep them on if any error occurs diffrent leds for diffrent errors but no errors at all even after running for hours.

here is bit banged routine.
// Returns 1 if error occured parameters pointer to buffer 
// for storing adc value and adc channel no.
bit read_pcf8591( uchar *adrdbuff, uchar adch)
{
	bit error;                // bit to store error.

	A24i2c_start();           // send start condition.
	error=A24i2c_out(0x90);   // send device address  + write.
	if (error)                // If nack received lit up a led.
		digdata[5]&=L_SCH;

    error=A24i2c_out(adch);       // send adc channel no.
	if (error)
		digdata[5]&=L_PROG;  // if nack recd lit up led.

	error=A24i2c_stop();      // send stop condition.
	if (error)                // If error occurs lit up a led
		digdata[5]&=L_REPEAT;

	A24i2c_start();           // send start condition.
	error=A24i2c_out(0x91);   // send device address + read
	if (error)                // If nack recd lit up led.
		digdata[5]&=L_SCH;

	*adrdbuff=A24i2c_in(0);   // Read value from adc send ack.
	*adrdbuff=A24i2c_in(1);   // Read value froma adc send nack.

	error=A24i2c_stop();      // send stop condition.
	if (error)                // if error occurs lit up led.
		digdata[5]&=L_REPEAT;

	return bit;               // return error to main prog.
}


Please help me above software i2c routines works fine.

Thanks & Regards,
Prahlad Purohit


List of 15 messages in thread
TopicAuthorDate
I2C routine getting stuck.            01/01/70 00:00      
   you can get working code by using            01/01/70 00:00      
      Re: Getting code working            01/01/70 00:00      
         I took aquick look at the I2con use and            01/01/70 00:00      
            Re: Why not interrupt.            01/01/70 00:00      
   24MHz without four layer board?            01/01/70 00:00      
      Re: 24MHz            01/01/70 00:00      
      What max freq can be used with two layer            01/01/70 00:00      
         who knows            01/01/70 00:00      
   I2C routine getting stuck.            01/01/70 00:00      
      Working very well with C668 @ 94khz bus            01/01/70 00:00      
   Bit Bangin Works fine.            01/01/70 00:00      
   Problem Solved.            01/01/70 00:00      
      maybe worth putting it into code library            01/01/70 00:00      
         Uploaded into code library.            01/01/70 00:00      

Back to Subject List