To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.nxtOpen lugnet.robotics.nxt in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / NXT / 741
740  |  742
Subject: 
Re: pbLua PCF8574 SOLVED ?
Newsgroups: 
lugnet.robotics.nxt, lugnet.robotics.nxt.nxthacking
Date: 
Mon, 21 May 2007 19:03:50 GMT
Viewed: 
37512 times
  
In lugnet.robotics.nxt, Christian Mock wrote:
> In lugnet.robotics.nxt, Christian Mock wrote:
> > In lugnet.robotics.nxt, Ralph Hempel wrote:
> > > Christian Mock wrote:
> > > > Hi,
> > > > has anybody successfully tried to read ports from I2C connected PCF8574 with
> > > > pbLua (Beta-8) ?
> > > > Writing and setting ports is no problem, but reading ports fails. The return
> > > > value is every times 0 (not NIL)
> > > 
> > > No ideas yet, Christian. I do have a Mindsensors kit here to look
> > > at over the weekend. Are you SURE you are sending the correct string
> > > to read the registers?
> > > 
> > > Can you post the code you're using for the test here?
> > > 
> > > Cheers, Ralph
> > 
> > Hi Ralph,
> > 
> > we are using this code:
> > 
> > collectgarbage( "setpause", 110 );
> > function setupI2C(port)
> >   nxt.InputSetType(port,2)
> >   nxt.InputSetDir(port,1,1)
> >   nxt.InputSetState(port,1,1)
> >   nxt.I2CTimer(3)
> >   nxt.I2CInitPins(port)
> > end
> > 
> > function ReadPCF(port)
> >  nxt.I2CSendData( port, string.char(0x73),1, 1 )
> >   while( 0 ~= nxt.I2CGetStatus(port)) do
> >   end
> >   s = nxt.I2CRecvData( port, 1 )
> >   print( "Daten " .. s )
> > end
> > 
> > setupI2C(4)
> > ReadPCF(4);
> > 
> > Do you think, we have to read I2C address more often ? Like ultrasonic sensor ?
> > The first read result of ultrasonic is allways 0.
> > 
> > Thanks for more :D
> > Bye
> > Christian
> > 
> > 
> > ---
> 
> Hi,
> we solved the problem... Lego-Firmware has own brain and handle read/write
> with own mechanisms ;-( The last read/write bit is handled automatically by
> lowlevel routines.
> Reading the same address like writing solves the problem.
> 
> 
> collectgarbage( "setpause", 110 );
> function setupI2C(port)
>   nxt.InputSetType(port,2)
>   nxt.InputSetDir(port,1,1)
>   nxt.InputSetState(port,1,1)
>   nxt.I2CTimer(3)
>   nxt.I2CInitPins(port)
> end
> 
> function ReadPCF(port)
>  nxt.I2CSendData( port, string.char(118),1, 1 ) -- hier wird Geschrieben um zu
> Lesen
>  while( 0 ~= nxt.I2CGetStatus(port)) do
>  end
>   s = nxt.I2CRecvData( port, 1 )
>   print( "Daten " . s )
>   c1 = string.byte(s,1,1)
>   print( string.format( "Result: %3i", c1 ) )
> end
> 
> ---
> 
> setupI2C(4);
> 
> ReadPCF(4);
> 
> Hmmm, why this ?
> 
> Bye
> Christian

Hi,
or was it a quirk at my brain to address the i2c-read-address and hope to
receive usefull data ?

Currently it works for me when using allways the i2c-write address...


Are the any demos or samples for NXC, using the PCF8574 ?
1. setting i2c-pcf8574-io-ports
2. reading i2c-pcf8574-io-ports

Thanks in advance
Bye
Christian



Message has 1 Reply:
  RE: pbLua PCF8574 SOLVED ?
 
(...) This is the excepted behavior. When you want to read from I2C device, the NXT firmware first sends a write message to load the internal index "pointer" for the I2C device and then sends a read message that will read the requested number of (...) (19 years ago, 21-May-07, to lugnet.robotics.nxt, lugnet.robotics.nxt.nxthacking)

Message is in Reply To:
  Re: pbLua PCF8574 SOLVED
 
(...) Hi, we solved the problem... Lego-Firmware has own brain and handle read/write with own mechanisms ;-( The last read/write bit is handled automatically by lowlevel routines. Reading the same address like writing solves the problem. (...) (19 years ago, 21-May-07, to lugnet.robotics.nxt, lugnet.robotics.nxt.nxthacking)

8 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR