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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
09/19/06 12:25
Modified:
  09/19/06 12:31

Read: times


 
#124547 - if we are to give examples
Responding to: ???'s previous message
Following is a concrete example of a module that does interrupt-based input from a UART. It would be accompanied by a header file with declarations for kbhit() and getch(), and all external access would be done through those functions.

if we are to give examples, let me try one based on the original concept by Russ http://www.8052.com/forum/read.phtml?id=124517

I am giving an example of serial data being stored in various places after receipt and verification.

we have a "modular by russ" serial module to get, say 1024 bytes from serial we need to do this to load a buffer
for (index = 0; index <1024 ; index++)
{
  SpecificBuffer[index] = getCharacter();
}
if we program 'small embedded' instead of 'PC' we do this
for (index = 0; index <1024 ; index++)
{
  SpecificBuffer[index] = GlobalSerialBuffer[index];
}
and have saved something like 20*1024 instruction cycles.

Ok, the approach by Russ may be 'prettier', 'safer' or whatever, but WHY waste 20k instruction cycles in an environment that is definitely not 'resource rich'.

Yes, if you are a blabbering idiot and have to save yourself from yourself, "avoid global variables" is a must * , but if you know what you are doing, the use of global variables should be weighed against efficiency. I do believe that the "global variables are evil" mantra was originally invented by someone that thought everyone but him is a blabbering idiot.

There is nothing hindering a modular approach by using global variables i.e. I have all handling of serial in ONE module with nothing else, but to make getting a character a means of processor overload is ridiculous.

Do I argue "use global variables to your hearts delight" absolutely not, but the "global variables are evil" mantra is udderly stupid in small embedded, whether it applies to the PC I'll leave to others to debate.

Erik

* the statement say "if you are" It does not say "if you do" I am not implying that those that avoid global variables are necessarily "blabbering idiots"

List of 56 messages in thread
TopicAuthorDate
Variables within ISR            01/01/70 00:00      
   static            01/01/70 00:00      
      Static, link            01/01/70 00:00      
   beware            01/01/70 00:00      
      Modular Programming            01/01/70 00:00      
         a rebuttal            01/01/70 00:00      
            A Faq about...            01/01/70 00:00      
            Global variables            01/01/70 00:00      
               "Self Documenting"            01/01/70 00:00      
            Global Variables Compromise Modularity            01/01/70 00:00      
               Module vs Global scope            01/01/70 00:00      
               file static            01/01/70 00:00      
                  RE: file static            01/01/70 00:00      
                     extern does matter            01/01/70 00:00      
                  Undeclared Variables            01/01/70 00:00      
                     to Russ            01/01/70 00:00      
                     try this            01/01/70 00:00      
                        Re: try this            01/01/70 00:00      
               Not Evil            01/01/70 00:00      
               module variables            01/01/70 00:00      
                  yes and no all must be weighed            01/01/70 00:00      
         Hmm            01/01/70 00:00      
            the advantages of not suffering from interruptifob            01/01/70 00:00      
            That is the typical way            01/01/70 00:00      
               yes, absolutely            01/01/70 00:00      
                  Depends on the use            01/01/70 00:00      
                     every rule can (and should) be broken            01/01/70 00:00      
            Fixing Problems vs. Hiding Them            01/01/70 00:00      
               I agree, but many take this as an excuse            01/01/70 00:00      
                  Be Defensive            01/01/70 00:00      
   A Module Example            01/01/70 00:00      
      if we are to give examples            01/01/70 00:00      
         Poor example            01/01/70 00:00      
            not so poor            01/01/70 00:00      
         Reasons to Waste Machine Cycles            01/01/70 00:00      
            it is still 'hidden' and BTW why hide it            01/01/70 00:00      
               I'm Done Preaching            01/01/70 00:00      
                  I hope that as well            01/01/70 00:00      
         to asm programmers..            01/01/70 00:00      
            Poor Logic            01/01/70 00:00      
               what an utterly stupid teacher            01/01/70 00:00      
                  OO            01/01/70 00:00      
                     No            01/01/70 00:00      
                     What OOP tells you            01/01/70 00:00      
                        A long Time ago            01/01/70 00:00      
                  I disagree            01/01/70 00:00      
                     some of the worst 'spaghetti' I have seen            01/01/70 00:00      
               Rules in C            01/01/70 00:00      
                  rules imposed on C            01/01/70 00:00      
                     Language Problems            01/01/70 00:00      
            that is very relevant            01/01/70 00:00      
         what about the library?            01/01/70 00:00      
            OH NO            01/01/70 00:00      
               Experience is the best teacher            01/01/70 00:00      
                  overlay            01/01/70 00:00      
                  to Russell            01/01/70 00:00      

Back to Subject List