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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
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


List of 77 messages in thread
TopicAuthorDate
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      

Back to Subject List