1. This forum section is a read-only archive which contains old newsgroup posts. If you wish to post a query, please do so in one of our main forum sections (here). This way you will get a faster, better response from the members on Motherboard Point.

Watchdog that should be taken out and shot

Discussion in 'Embedded' started by Tom Lucas, Sep 13, 2006.

  1. Tom Lucas

    Tom Lucas Guest

    I've been trying to implement the watchdog timer on my Sharp79524 and it
    appears that the mutt is sleeping on the job!

    I believe I have it set up to trigger after about 3s of inactivity but
    it doesn't seem to reset the system at all.

    My setup method is as follows:
    1) Write 0x00000090 to the watchdog CTL to set up for 2^25 counts of
    HCLK as the timeout period. This also stops an interrupt on first
    timeout occurring and should set up for an immediate reset. Watchdog not
    enabled at this point

    2) Write 0x1984 to the watchdog RST register to seed the counter.
    (Goodness knows why they chose that value)

    3) OR 0x00000001 onto the CTL register to enable the watchdog.

    4) OR 0x00000008 onto the CTL regsiter to lock the enable.

    Then I periodically write Ox1984 to the RST register to keep everything
    alive.

    Then if I encounter a while(1); that I've planted somewhere then the
    system hangs but no reset ever happens.

    Is there something I've missed? The watchdog section of the user guide
    was only a few pages so it would appear to be "simple" but perhaps there
    are other things that affect it's operation?

    I've tried running under the debugger and also stand-alone from flash in
    case that made any difference but it doesn't seem to.

    Any ideas?
     
    Tom Lucas, Sep 13, 2006
    #1
    1. Advertising

  2. Tom Lucas

    larwe Guest

    Tom Lucas wrote:

    > 2) Write 0x1984 to the watchdog RST register to seed the counter.
    > (Goodness knows why they chose that value)


    It's probably the lead developer's dog's birthday written in base 9 and
    shown as a hex number. Almost certainly there is an ex post facto
    explanation as to why it is the technically sound choice.

    > Then I periodically write Ox1984 to the RST register to keep everything
    > alive.


    Silly question, but "periodically" = inside an ISR?
     
    larwe, Sep 13, 2006
    #2
    1. Advertising

  3. Tom Lucas

    Tom Lucas Guest

    "larwe" <> wrote in message
    news:...
    >
    > Tom Lucas wrote:
    >
    >> 2) Write 0x1984 to the watchdog RST register to seed the counter.
    >> (Goodness knows why they chose that value)

    >
    > It's probably the lead developer's dog's birthday written in base 9
    > and
    > shown as a hex number. Almost certainly there is an ex post facto
    > explanation as to why it is the technically sound choice.


    Either that or it was the last time that the UART documentation was
    updated :)

    >> Then I periodically write Ox1984 to the RST register to keep
    >> everything
    >> alive.

    >
    > Silly question, but "periodically" = inside an ISR?


    No no. I had initially headed off on that route before the little voice
    in the back of my head smacked the bigger voice on the back of its head
    for being so stupid.

    The GUI I use is a polled system and I call the watchdog refresher
    whenever I update the GUI, which is pretty much all the time.
     
    Tom Lucas, Sep 13, 2006
    #3
  4. Tom Lucas

    Tim Wescott Guest

    larwe wrote:

    > Tom Lucas wrote:
    >
    >
    >>2) Write 0x1984 to the watchdog RST register to seed the counter.
    >>(Goodness knows why they chose that value)

    >
    >
    > It's probably the lead developer's dog's birthday written in base 9 and
    > shown as a hex number. Almost certainly there is an ex post facto
    > explanation as to why it is the technically sound choice.
    >
    >
    >>Then I periodically write Ox1984 to the RST register to keep everything
    >>alive.

    >
    >
    > Silly question, but "periodically" = inside an ISR?
    >

    Oh honestly Lewin, where else would you kick the dog?

    Do you know of any really good discussions of the care and feeding* of
    watchdogs? Where I've seen it done well it involved _all_ of the
    critical tasks setting a bit in a variable, then an ISR that would check
    for all the bits set, then reset the variable and kick the dog if they
    were. The nice thing about this is that you couldn't have one bit of
    software that would function correctly and kick the dog while the rest
    of the system went to hell in a handbasket.

    * In one of your many books, perhaps?

    --

    Tim Wescott
    Wescott Design Services
    http://www.wescottdesign.com

    Posting from Google? See http://cfaj.freeshell.org/google/

    "Applied Control Theory for Embedded Systems" came out in April.
    See details at http://www.wescottdesign.com/actfes/actfes.html
     
    Tim Wescott, Sep 13, 2006
    #4
  5. Tom Lucas

    Neil Cherry Guest

    On Wed, 13 Sep 2006 08:57:04 -0700, Tim Wescott wrote:
    > larwe wrote:
    >
    >> Tom Lucas wrote:
    >>
    >>
    >>>2) Write 0x1984 to the watchdog RST register to seed the counter.
    >>>(Goodness knows why they chose that value)

    >>
    >>
    >> It's probably the lead developer's dog's birthday written in base 9 and
    >> shown as a hex number. Almost certainly there is an ex post facto
    >> explanation as to why it is the technically sound choice.
    >>
    >>
    >>>Then I periodically write Ox1984 to the RST register to keep everything
    >>>alive.

    >>
    >>
    >> Silly question, but "periodically" = inside an ISR?
    >>

    > Oh honestly Lewin, where else would you kick the dog?



    I just went through this in a discussion on a problem I was having
    with a watchdog.

    http://groups.google.com/group/comp.arch.embedded/browse_thread/
    thread/35948d0883e635ad/84a165731af5c03d?lnk=st&q=&rnum=1&hl
    =en#84a165731af5c03d

    You'll need to put the link back together.

    Short answer is that the prgram may go to hell but the interrupt
    may continue working fin for every.

    --
    Linux Home Automation Neil Cherry
    http://www.linuxha.com/ Main site
    http://linuxha.blogspot.com/ My HA Blog
    http://home.comcast.net/~ncherry/ Backup site
     
    Neil Cherry, Sep 13, 2006
    #5
  6. Tom Lucas

    Tom Lucas Guest

    "Tim Wescott" <> wrote in message
    news:...
    > larwe wrote:
    >
    >> Tom Lucas wrote:
    >>
    >>
    >>>2) Write 0x1984 to the watchdog RST register to seed the counter.
    >>>(Goodness knows why they chose that value)

    >>
    >>
    >> It's probably the lead developer's dog's birthday written in base 9
    >> and
    >> shown as a hex number. Almost certainly there is an ex post facto
    >> explanation as to why it is the technically sound choice.
    >>
    >>
    >>>Then I periodically write Ox1984 to the RST register to keep
    >>>everything
    >>>alive.

    >>
    >>
    >> Silly question, but "periodically" = inside an ISR?
    >>

    > Oh honestly Lewin, where else would you kick the dog?


    Perhaps the interrupt idea isn't so crazy after all. Perhaps if I had a
    counter running in a timer ISR which caused a branch to zero at a
    certain level could be a dirty hack to get around the problem? Seems a
    shame when a chap at Sharp has spent at least a morning designing a nice
    watch dog.

    > Do you know of any really good discussions of the care and feeding* of
    > watchdogs? Where I've seen it done well it involved _all_ of the
    > critical tasks setting a bit in a variable, then an ISR that would
    > check for all the bits set, then reset the variable and kick the dog
    > if they were. The nice thing about this is that you couldn't have one
    > bit of software that would function correctly and kick the dog while
    > the rest of the system went to hell in a handbasket.


    Neat trick. Another one noted for future use :)
     
    Tom Lucas, Sep 13, 2006
    #6
  7. Tom Lucas

    Tom Lucas Guest

    "Neil Cherry" <> wrote in message
    news:...
    > On Wed, 13 Sep 2006 08:57:04 -0700, Tim Wescott wrote:
    >> larwe wrote:
    >>
    >>> Tom Lucas wrote:
    >>>
    >>>
    >>>>2) Write 0x1984 to the watchdog RST register to seed the counter.
    >>>>(Goodness knows why they chose that value)
    >>>
    >>>
    >>> It's probably the lead developer's dog's birthday written in base 9
    >>> and
    >>> shown as a hex number. Almost certainly there is an ex post facto
    >>> explanation as to why it is the technically sound choice.
    >>>
    >>>
    >>>>Then I periodically write Ox1984 to the RST register to keep
    >>>>everything
    >>>>alive.
    >>>
    >>>
    >>> Silly question, but "periodically" = inside an ISR?
    >>>

    >> Oh honestly Lewin, where else would you kick the dog?

    >
    >
    > I just went through this in a discussion on a problem I was having
    > with a watchdog.
    >
    > http://groups.google.com/group/comp.arch.embedded/browse_thread/
    > thread/35948d0883e635ad/84a165731af5c03d?lnk=st&q=&rnum=1&hl
    > =en#84a165731af5c03d
    >
    > You'll need to put the link back together.
    >
    > Short answer is that the prgram may go to hell but the interrupt
    > may continue working fin for every.
    >


    I think my kicking mechanism works, I just need it to notice when I stop
    kicking!
     
    Tom Lucas, Sep 13, 2006
    #7
  8. Tom Lucas

    Tim Wescott Guest

    Neil Cherry wrote:

    > On Wed, 13 Sep 2006 08:57:04 -0700, Tim Wescott wrote:
    >
    >>larwe wrote:
    >>
    >>
    >>>Tom Lucas wrote:
    >>>
    >>>
    >>>
    >>>>2) Write 0x1984 to the watchdog RST register to seed the counter.
    >>>>(Goodness knows why they chose that value)
    >>>
    >>>
    >>>It's probably the lead developer's dog's birthday written in base 9 and
    >>>shown as a hex number. Almost certainly there is an ex post facto
    >>>explanation as to why it is the technically sound choice.
    >>>
    >>>
    >>>
    >>>>Then I periodically write Ox1984 to the RST register to keep everything
    >>>>alive.
    >>>
    >>>
    >>>Silly question, but "periodically" = inside an ISR?
    >>>

    >>
    >>Oh honestly Lewin, where else would you kick the dog?

    >
    >
    >
    > I just went through this in a discussion on a problem I was having
    > with a watchdog.
    >
    > http://groups.google.com/group/comp.arch.embedded/browse_thread/
    > thread/35948d0883e635ad/84a165731af5c03d?lnk=st&q=&rnum=1&hl
    > =en#84a165731af5c03d
    >
    > You'll need to put the link back together.
    >
    > Short answer is that the prgram may go to hell but the interrupt
    > may continue working fin for every.
    >

    Well, if you read the rest of the post it'll be clear that I had my
    tongue in my cheek.

    Serious use of a watchdog timer must be approach _very_ carefully,
    unless the processor is only doing one thing. Even if you don't have
    interrupts turned on or an RTOS, you can still build your software so
    that some aspects fail while others work. You need to make sure that if
    a reset needs to happen it does, and don't just assume that because
    something somewhere kicks the watchdog periodically that everything will
    be fine.

    --

    Tim Wescott
    Wescott Design Services
    http://www.wescottdesign.com

    Posting from Google? See http://cfaj.freeshell.org/google/

    "Applied Control Theory for Embedded Systems" came out in April.
    See details at http://www.wescottdesign.com/actfes/actfes.html
     
    Tim Wescott, Sep 13, 2006
    #8
  9. Tom Lucas

    larwe Guest

    Tim Wescott wrote:

    > Do you know of any really good discussions of the care and feeding* of
    > watchdogs? Where I've seen it done well it involved _all_ of the


    I haven't written anything formally on the topic, but it has been
    discussed here many times. One of the techniques I've used is to have
    an entry counter in each thread. At regular intervals (in an ISR),
    these counters are checked. If they fall within guard bands [which may
    have to be pretty wide], the WDT is kicked; otherwise, bite.

    Ganssle has some excellent material on the topic, of course.
     
    larwe, Sep 13, 2006
    #9
  10. "Tom Lucas" <news@REMOVE_auto_THIS_flame_TO_REPLY.clara.co.uk> wrote in
    message news:...
    > I've been trying to implement the watchdog timer on my Sharp79524 and it
    > appears that the mutt is sleeping on the job!


    I'm using a 75410, which has a watchdog that looks the same. I don't use it
    because it is only any use in faulty software and if I had faulty software
    why would I expect the watchdog code to be any better. However, I can test
    it out.

    > I believe I have it set up to trigger after about 3s of inactivity but
    > it doesn't seem to reset the system at all.
    >
    > My setup method is as follows:
    > 1) Write 0x00000090 to the watchdog CTL to set up for 2^25 counts of
    > HCLK as the timeout period. This also stops an interrupt on first
    > timeout occurring and should set up for an immediate reset. Watchdog not
    > enabled at this point


    For me 2^25 counts is 0.65 seconds.

    > 2) Write 0x1984 to the watchdog RST register to seed the counter.
    > (Goodness knows why they chose that value)
    >
    > 3) OR 0x00000001 onto the CTL register to enable the watchdog.
    >
    > 4) OR 0x00000008 onto the CTL regsiter to lock the enable.


    Yep, reset after a fraction of a second. Using a larger period gave the
    expected results.

    > Then I periodically write Ox1984 to the RST register to keep everything
    > alive.
    >
    > Then if I encounter a while(1); that I've planted somewhere then the
    > system hangs but no reset ever happens.
    >
    > Is there something I've missed? The watchdog section of the user guide
    > was only a few pages so it would appear to be "simple" but perhaps there
    > are other things that affect it's operation?
    >
    > I've tried running under the debugger and also stand-alone from flash in
    > case that made any difference but it doesn't seem to.
    >
    > Any ideas?


    I poked 0x90, 0x91 and 0x98 rather than oring but other...
    Peter
     
    Peter Dickerson, Sep 13, 2006
    #10
  11. Tom Lucas

    Vic Guest

    On 13 Sep 2006 08:44:58 -0700, "larwe" <> wrote:

    >
    >Tom Lucas wrote:
    >
    >> 2) Write 0x1984 to the watchdog RST register to seed the counter.
    >> (Goodness knows why they chose that value)

    >

    <snip>

    Big Brother is watch(dogg)ing you!
     
    Vic, Sep 13, 2006
    #11
  12. "Peter Dickerson" <first{dot}> wrote in message
    news:5aXNg.17075$...
    > "Tom Lucas" <news@REMOVE_auto_THIS_flame_TO_REPLY.clara.co.uk> wrote in
    > message news:...
    >> I've been trying to implement the watchdog timer on my Sharp79524 and it
    >> appears that the mutt is sleeping on the job!

    >
    > I'm using a 75410, which has a watchdog that looks the same. I don't use
    > it
    > because it is only any use in faulty software and if I had faulty software
    > why would I expect the watchdog code to be any better. However, I can test
    > it out.


    I fear you're missing the point of a watchdog.

    A watchdog isn't there to catch faulty software - as you say, you shouldn't
    have any. (Although some would disagree). It's there as an EMI-recovery
    device. *Any* microprocessor-based product, no matter how well designed, can
    be made to go "off in the weeds" with a strong enough EMI spike. The
    watchdog is there to limit the time the processor can stay off in the weeds.

    Steve
    http://www.fivetrees.com
     
    Steve at fivetrees, Sep 13, 2006
    #12
  13. "Steve at fivetrees" <> wrote in message
    news:...
    > "Peter Dickerson" <first{dot}> wrote in message
    > news:5aXNg.17075$...
    > > "Tom Lucas" <news@REMOVE_auto_THIS_flame_TO_REPLY.clara.co.uk> wrote in
    > > message news:...
    > >> I've been trying to implement the watchdog timer on my Sharp79524 and

    it
    > >> appears that the mutt is sleeping on the job!

    > >
    > > I'm using a 75410, which has a watchdog that looks the same. I don't use
    > > it
    > > because it is only any use in faulty software and if I had faulty

    software
    > > why would I expect the watchdog code to be any better. However, I can

    test
    > > it out.

    >
    > I fear you're missing the point of a watchdog.
    >
    > A watchdog isn't there to catch faulty software - as you say, you

    shouldn't
    > have any. (Although some would disagree). It's there as an EMI-recovery
    > device. *Any* microprocessor-based product, no matter how well designed,

    can
    > be made to go "off in the weeds" with a strong enough EMI spike. The
    > watchdog is there to limit the time the processor can stay off in the

    weeds.

    After such a spike the last thing I would worry about is the CPU. That would
    system appear to be working but not actually be. Internal and external EMI
    are a big issue for the delicate measurements.
    In any case my comment was tongue-in-cheek as I'm sure you were aware.

    Peter
     
    Peter Dickerson, Sep 13, 2006
    #13
  14. Tom Lucas

    Joerg Guest

    Hello Tim,

    >>
    >>> 2) Write 0x1984 to the watchdog RST register to seed the counter.
    >>> (Goodness knows why they chose that value)

    >>
    >> It's probably the lead developer's dog's birthday written in base 9 and
    >> shown as a hex number. Almost certainly there is an ex post facto
    >> explanation as to why it is the technically sound choice.
    >>
    >>> Then I periodically write Ox1984 to the RST register to keep everything
    >>> alive.

    >>
    >> Silly question, but "periodically" = inside an ISR?
    >>

    > Oh honestly Lewin, where else would you kick the dog?
    >


    Kicking is animal cruelty...


    > Do you know of any really good discussions of the care and feeding* of
    > watchdogs?



    "Go Natural" works best for our shepherd mix, can be bought at our local
    feed store ;-)

    --
    Regards, Joerg

    http://www.analogconsultants.com
     
    Joerg, Sep 13, 2006
    #14
  15. "Peter Dickerson" <first{dot}> wrote in message
    news:n%XNg.17088$...
    > "Steve at fivetrees" <> wrote in message
    > news:...
    >> "Peter Dickerson" <first{dot}> wrote in message
    >> news:5aXNg.17075$...
    >> > "Tom Lucas" <news@REMOVE_auto_THIS_flame_TO_REPLY.clara.co.uk> wrote in
    >> > message news:...
    >> >> I've been trying to implement the watchdog timer on my Sharp79524 and

    > it
    >> >> appears that the mutt is sleeping on the job!
    >> >
    >> > I'm using a 75410, which has a watchdog that looks the same. I don't
    >> > use
    >> > it
    >> > because it is only any use in faulty software and if I had faulty

    > software
    >> > why would I expect the watchdog code to be any better. However, I can

    > test
    >> > it out.

    >>
    >> I fear you're missing the point of a watchdog.
    >>
    >> A watchdog isn't there to catch faulty software - as you say, you

    > shouldn't
    >> have any. (Although some would disagree). It's there as an EMI-recovery
    >> device. *Any* microprocessor-based product, no matter how well designed,

    > can
    >> be made to go "off in the weeds" with a strong enough EMI spike. The
    >> watchdog is there to limit the time the processor can stay off in the

    > weeds.
    >
    > After such a spike the last thing I would worry about is the CPU. That
    > would
    > system appear to be working but not actually be. Internal and external EMI
    > are a big issue for the delicate measurements.


    We did a lot of EMI testing on a number of products (albeit some years ago).
    We found that "going off on the weeds" took a certain finite threshold; we
    tried turning it up to find the the "permanent damage" threshold, and never
    did. We passed on the "Nuclear EMP" option.

    > In any case my comment was tongue-in-cheek as I'm sure you were aware.


    I wasn't, but a) I do now and b) I'm relieved ;).

    Steve
    http://www.fivetrees.com
     
    Steve at fivetrees, Sep 13, 2006
    #15
  16. Tom Lucas

    CBFalconer Guest

    Peter Dickerson wrote:
    > "Tom Lucas" <news@REMOVE_auto_THIS_flame_TO_REPLY.clara.co.uk> wrote:
    >
    >> I've been trying to implement the watchdog timer on my Sharp79524
    >> and it appears that the mutt is sleeping on the job!

    >
    > I'm using a 75410, which has a watchdog that looks the same. I
    > don't use it because it is only any use in faulty software and if
    > I had faulty software why would I expect the watchdog code to be
    > any better. However, I can test it out.


    There are failure causes other than faulty software. Some are
    permanent, some transient. Think cosmic rays.

    --
    "I have a creative mind. You (singular) are eccentric.
    He is insane. We are losing sight of reality.
    You (plural) are smoking crack. They are certifiable."
    Declension of verbs, per Lewin Edwards



    --
    Posted via a free Usenet account from http://www.teranews.com
     
    CBFalconer, Sep 13, 2006
    #16
  17. Tom Lucas

    Tom Lucas Guest

    "Peter Dickerson" <first{dot}> wrote in message
    news:5aXNg.17075$...
    > "Tom Lucas" <news@REMOVE_auto_THIS_flame_TO_REPLY.clara.co.uk> wrote
    > in
    > message news:...
    >> I've been trying to implement the watchdog timer on my Sharp79524 and
    >> it
    >> appears that the mutt is sleeping on the job!

    >
    > I'm using a 75410, which has a watchdog that looks the same. I don't
    > use it
    > because it is only any use in faulty software and if I had faulty
    > software
    > why would I expect the watchdog code to be any better. However, I can
    > test
    > it out.


    Of course, my software is perfect and can never fail so I only need the
    watchdog in case of alien death rays ;-)

    >> I believe I have it set up to trigger after about 3s of inactivity
    >> but
    >> it doesn't seem to reset the system at all.
    >>
    >> My setup method is as follows:
    >> 1) Write 0x00000090 to the watchdog CTL to set up for 2^25 counts of
    >> HCLK as the timeout period. This also stops an interrupt on first
    >> timeout occurring and should set up for an immediate reset. Watchdog
    >> not
    >> enabled at this point

    >
    > For me 2^25 counts is 0.65 seconds.


    Maybe my maths is a bit off but even at 0.65s then I would expect it to
    reset - even if I expected it to take longer.

    >> 2) Write 0x1984 to the watchdog RST register to seed the counter.
    >> (Goodness knows why they chose that value)
    >>
    >> 3) OR 0x00000001 onto the CTL register to enable the watchdog.
    >>
    >> 4) OR 0x00000008 onto the CTL regsiter to lock the enable.

    >
    > Yep, reset after a fraction of a second. Using a larger period gave
    > the
    > expected results.


    Didn't happen for me :-( Is there something in the RCPC registers that
    needs to be set before watchdogs have any bite? Is there anything that
    can stop them?

    >> Then I periodically write Ox1984 to the RST register to keep
    >> everything
    >> alive.
    >>
    >> Then if I encounter a while(1); that I've planted somewhere then the
    >> system hangs but no reset ever happens.
    >>
    >> Is there something I've missed? The watchdog section of the user
    >> guide
    >> was only a few pages so it would appear to be "simple" but perhaps
    >> there
    >> are other things that affect it's operation?
    >>
    >> I've tried running under the debugger and also stand-alone from flash
    >> in
    >> case that made any difference but it doesn't seem to.
    >>
    >> Any ideas?

    >
    > I poked 0x90, 0x91 and 0x98 rather than oring but other...
    > Peter


    Hold on I'll try......nope, didn't work.

    Perhaps there is something in the hardware that can prevent a WDT?
    Perhaps I have a disabling pin activated or something but I'm not aware
    of any that it could be.
     
    Tom Lucas, Sep 14, 2006
    #17
  18. Tom Lucas

    Tom Lucas Guest

    Re: Watchdog - all is forgiven

    "Tom Lucas" <news@REMOVE_auto_THIS_flame_TO_REPLY.clara.co.uk> wrote in
    message news:...
    > I've been trying to implement the watchdog timer on my Sharp79524 and
    > it appears that the mutt is sleeping on the job!
    >
    > I believe I have it set up to trigger after about 3s of inactivity but
    > it doesn't seem to reset the system at all.


    Problem Solved!

    It turns out that the address of the watchdog register is actually
    0xFFFE3000 instead of the 0xFFFC3000 that is shown in the user guide.
    This is a case where RTFM has caused the problem!

    D'oh!
     
    Tom Lucas, Sep 14, 2006
    #18
  19. On Wed, 13 Sep 2006 19:09:30 GMT, in comp.arch.embedded Joerg
    <> wrote:

    >Hello Tim,
    >
    >>>
    >>>> 2) Write 0x1984 to the watchdog RST register to seed the counter.
    >>>> (Goodness knows why they chose that value)
    >>>
    >>> It's probably the lead developer's dog's birthday written in base 9 and
    >>> shown as a hex number. Almost certainly there is an ex post facto
    >>> explanation as to why it is the technically sound choice.
    >>>
    >>>> Then I periodically write Ox1984 to the RST register to keep everything
    >>>> alive.
    >>>
    >>> Silly question, but "periodically" = inside an ISR?
    >>>

    >> Oh honestly Lewin, where else would you kick the dog?
    >>

    >
    >Kicking is animal cruelty...
    >
    >
    >> Do you know of any really good discussions of the care and feeding* of
    >> watchdogs?

    >
    >
    >"Go Natural" works best for our shepherd mix, can be bought at our local
    >feed store ;-)


    OK, a bit late in the thread, but
    http://ganssle.com/watchdogs.htm


    martin
     
    martin griffith, Sep 14, 2006
    #19
  20. Tom Lucas

    Tom Lucas Guest

    "martin griffith" <> wrote in message
    news:...
    > On Wed, 13 Sep 2006 19:09:30 GMT, in comp.arch.embedded Joerg
    > <> wrote:
    >
    >>Hello Tim,
    >>
    >>>>
    >>>>> 2) Write 0x1984 to the watchdog RST register to seed the counter.
    >>>>> (Goodness knows why they chose that value)
    >>>>
    >>>> It's probably the lead developer's dog's birthday written in base 9
    >>>> and
    >>>> shown as a hex number. Almost certainly there is an ex post facto
    >>>> explanation as to why it is the technically sound choice.
    >>>>
    >>>>> Then I periodically write Ox1984 to the RST register to keep
    >>>>> everything
    >>>>> alive.
    >>>>
    >>>> Silly question, but "periodically" = inside an ISR?
    >>>>
    >>> Oh honestly Lewin, where else would you kick the dog?
    >>>

    >>
    >>Kicking is animal cruelty...
    >>
    >>
    >>> Do you know of any really good discussions of the care and feeding*
    >>> of
    >>> watchdogs?

    >>
    >>
    >>"Go Natural" works best for our shepherd mix, can be bought at our
    >>local
    >>feed store ;-)

    >
    > OK, a bit late in the thread, but
    > http://ganssle.com/watchdogs.htm


    Good link. Thanks.
     
    Tom Lucas, Sep 14, 2006
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. DeeDee
    Replies:
    6
    Views:
    275
    DeeDee
    May 9, 2004
  2. Chris Roth
    Replies:
    0
    Views:
    364
    Chris Roth
    Sep 12, 2003
  3. Chris Roth
    Replies:
    0
    Views:
    1,669
    Chris Roth
    Sep 12, 2003
  4. Patrick Meuser-Bianca
    Replies:
    0
    Views:
    818
    Patrick Meuser-Bianca
    Jun 21, 2008
  5. Jim
    Replies:
    6
    Views:
    368
Loading...

Share This Page