??? 03/19/05 18:37 Read: times Msg Score: +1 +1 Good Answer/Helpful |
#90020 - I'll Suggest... Responding to: ???'s previous message |
There is no need to code all the stuff with pointers and structures. That is a real waste of resources and bandwidth. All you need is a very short subroutine that gets an address byte (argument to C function is a unsigned char) that ends up being passed in register!! This adderss can be the I2C address of the device specifically. After all this bus is limited to 127 total devices anyway!!
I have a project wherein I have had software based bitbanged I2C routines that perform five simple functions. These are I2C_INIT, I2C_START, I2C_STOP, I2C_OUT, and I2C_IN. Each of these gets the I2C address as needed in a unsigned char argument (register in Keil C51 !!) and a data byte as a second argument in the case of the I2C_OUT routine. In that same project I have two sets of simple I2C access functions to support temp sensors and serial eeprom devices. Once again these all use simple arguments to the subroutines so everything fits into regsters. Fast, compact, and efficient. Plus this code in C is just as (or more) portable than the "fancy" stuff you were sporting. If you are working with one of the IDE type 8051 C tool sets such as the Keil uVision 2 you really owe it to yourself to investigate the god awful code that is generated upon using pointers to dynamically located structures in C51. Particularly if the target structures are in XDATA. Keil for example has an excellent built in simulator that you can look at such code with. They also have another way where you put "#pragma SRC" at the top of the C file and it compiles to an ASM 51 source file which you can then open and be shocked at!! Michael Karas |
Topic | Author | Date |
Problems with PCF8574 input | 01/01/70 00:00 | |
best guess | 01/01/70 00:00 | |
To Erik | 01/01/70 00:00 | |
So.... | 01/01/70 00:00 | |
To Jez Smith | 01/01/70 00:00 | |
show the code | 01/01/70 00:00 | |
To Oleg | 01/01/70 00:00 | |
How to post code | 01/01/70 00:00 | |
To Andy | 01/01/70 00:00 | |
hmmmmmm | 01/01/70 00:00 | |
To Jez | 01/01/70 00:00 | |
RTFDS - using 8574 IO as inputs | 01/01/70 00:00 | |
To J. Guy | 01/01/70 00:00 | |
When is pin written ? | 01/01/70 00:00 | |
My datasheet tells something different.. | 01/01/70 00:00 | |
To Kai | 01/01/70 00:00 | |
cutting through the fog | 01/01/70 00:00 | |
To J. Guy | 01/01/70 00:00 | |
Where is the difference between... | 01/01/70 00:00 | |
To Kai | 01/01/70 00:00 | |
Re:Problems with PCF8574 input | 01/01/70 00:00 | |
Test it without having any communication | 01/01/70 00:00 | |
To Kai | 01/01/70 00:00 | |
Maybe good guess! | 01/01/70 00:00 | |
To Medhi | 01/01/70 00:00 | |
Switch terminology | 01/01/70 00:00 | |
Thanks! | 01/01/70 00:00 | |
Coonfoosed yeeet | 01/01/70 00:00 | |
Contact arrangement - nothing else | 01/01/70 00:00 | |
PCF8574 | 01/01/70 00:00 | |
To Ben | 01/01/70 00:00 | |
I have used the bugger often | 01/01/70 00:00 | |
To Erik | 01/01/70 00:00 | |
helloooooooooo !! | 01/01/70 00:00 | |
To Erik | 01/01/70 00:00 | |
Wager... | 01/01/70 00:00 | |
To Grant | 01/01/70 00:00 | |
The code... | 01/01/70 00:00 | |
Thats told 'em :-) | 01/01/70 00:00 | |
Frightend... ;-) | 01/01/70 00:00 | |
Formatting | 01/01/70 00:00 | |
Format flavours. | 01/01/70 00:00 | |
Insanity | 01/01/70 00:00 | |
Malaysian Grand Prix... | 01/01/70 00:00 | |
Some update!!! | 01/01/70 00:00 | |
Let me comment.... | 01/01/70 00:00 | |
"fancy" code | 01/01/70 00:00 | |
I'll Suggest... | 01/01/70 00:00 | |
Pointers and structures | 01/01/70 00:00 | |
C assumes int | 01/01/70 00:00 | |
Followed the advice of Michael Karas... | 01/01/70 00:00 | |
Why not assembly using? | 01/01/70 00:00 | |
Assembler code | 01/01/70 00:00 | |
Well... | 01/01/70 00:00 | |
int | 01/01/70 00:00 | |
Check Maxint ? | 01/01/70 00:00 | |
Maxint | 01/01/70 00:00 | |
Murdered quote | 01/01/70 00:00 | |
I2C code | 01/01/70 00:00 | |
Keil webpage | 01/01/70 00:00 | |
i2c simulator | 01/01/70 00:00 | |
Me to blame? | 01/01/70 00:00 | |
not blaming you! | 01/01/70 00:00 | |
Michael B. made a very usefull tool! | 01/01/70 00:00 | |
hello | 01/01/70 00:00 | |
Not aware? | 01/01/70 00:00 | |
thank u | 01/01/70 00:00 | |
Name confusion...![]() | 01/01/70 00:00 | |
hi | 01/01/70 00:00 | |
Damned, damned, damned... | 01/01/70 00:00 | |
Ha, ha, ha, ha, ha .... | 01/01/70 00:00 | |
Calico | 01/01/70 00:00 | |
Pls. do so! | 01/01/70 00:00 | |
Keyboard Calico | 01/01/70 00:00 | |
Christmas | 01/01/70 00:00 | |
Maybe it was .... | 01/01/70 00:00 | |
Christmas Presents | 01/01/70 00:00 |