|
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:
Message is in Reply To:
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
|
|
|
|