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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
04/01/10 10:11
Read: times


 
#174726 - Limit Watchdog feed
Responding to: ???'s previous message
Hello,
Regarding all your ideas and things I would try, I'm trying to clean program by limiting the calls to my function which feed the watchdog.
I realize that the best code is to have only one call to this function in my main loop, but it's impossible.

About this, I have a question or a tip to ask to you :

I've got a serial port communication between my board (the micro) and any device (PC, modem or else).

currently I proceed as follow :

When I've to send data from micro :
- I feel a char* buffer (using sprintf)
- I enter a function (flush) which do this :
+ Activate serial interrupt (setting TI0=1)
+ enter an infinite loop while the number of chars to send isn't equal to 0
- In my serial interrupt I do if (TI0 == 1) :
+ SOBUF = char to send
+ feed watchdog (PCON=PCON|0x10; and T3=0x00;)
+ decrease number of chars to send
+ TI0 = 0

I would like to write a more suitable code for this algorithme.

The problem is that I can't send all the chars without feed the watchdog. baudrate can be between 300bds and 19200bds and the amount of data is about 250 chars at once and never excede a frame of 1000 chars (4 sprintf and 4 call to the flush function

In addition, I checked the init of the RAM at start (after a reset). Good news : the RAM isn't initialized, so I'm writing a code to set a variable in start of each function of my program which is displayed at start of the micro. So I'll can see in which function the program freezed.


List of 55 messages in thread
TopicAuthorDate
Micro freeze            01/01/70 00:00      
   I don't understant how micro can freeze            01/01/70 00:00      
   Hang-up or lock-up?            01/01/70 00:00      
   details            01/01/70 00:00      
      You didn't answer the question            01/01/70 00:00      
      Oops, no good at all!            01/01/70 00:00      
      I think what Kai meant was /EA not EW            01/01/70 00:00      
         No, I meant the /EW pin            01/01/70 00:00      
   RST Watchdog            01/01/70 00:00      
      Add diagnostics            01/01/70 00:00      
         That's a good plan ... IF ...            01/01/70 00:00      
            Useful, but not essential            01/01/70 00:00      
               His problem, however ...            01/01/70 00:00      
                  Sorry - missing the point            01/01/70 00:00      
   more details            01/01/70 00:00      
      Don't jump to conclusions            01/01/70 00:00      
         test suggestions            01/01/70 00:00      
            Unlikely to be "random"            01/01/70 00:00      
            Assume nothing! Be very meticulous in your observations            01/01/70 00:00      
               somes evidences            01/01/70 00:00      
                  /EW not /WE!            01/01/70 00:00      
                     /EW not /WE            01/01/70 00:00      
                        that was my confusion, not yours ...            01/01/70 00:00      
                           The Watchdog does not "find" anything            01/01/70 00:00      
                              feed the dog            01/01/70 00:00      
                                 watchdog management            01/01/70 00:00      
                                 Many ideas out there . . .            01/01/70 00:00      
                              Certainly, but it responds to a missing "kick"            01/01/70 00:00      
                                 True, but            01/01/70 00:00      
                                    One simple diagnostic tool            01/01/70 00:00      
                     Oops! Begging your pardon ...            01/01/70 00:00      
   logic analyzer            01/01/70 00:00      
      Could be tricky...            01/01/70 00:00      
         someone doesn't want him to fix it            01/01/70 00:00      
            It isn't clear...            01/01/70 00:00      
         "potted" = what?            01/01/70 00:00      
            got it: "potted" = "drowned in resin"            01/01/70 00:00      
               potting SMD components            01/01/70 00:00      
   Limit Watchdog feed            01/01/70 00:00      
      I would like to write a more suitable code for this algorith            01/01/70 00:00      
         Keil example            01/01/70 00:00      
            The point is...            01/01/70 00:00      
      feed the watchdog in main loop            01/01/70 00:00      
         Non blocking loop            01/01/70 00:00      
            nothing impossible            01/01/70 00:00      
               Breaks on vacation?            01/01/70 00:00      
                  oops            01/01/70 00:00      
            Not at all!            01/01/70 00:00      
               big enought            01/01/70 00:00      
                  Both!            01/01/70 00:00      
                     re both            01/01/70 00:00      
                        You misunderstand            01/01/70 00:00      
         where to feed watchdog            01/01/70 00:00      
            You misunderstand            01/01/70 00:00      
            Watchdog kick in interrupts can often fail badly            01/01/70 00:00      

Back to Subject List