Watchdog slowing program down
Moderator: Benj
-
- Posts: 139
- Joined: Mon Sep 21, 2009 10:17 am
- Location: Leicester
- Has thanked: 35 times
- Been thanked: 12 times
Watchdog slowing program down
Hi,
I have almost finished my code with great thanks to members debugging my efforts. I learned a lot in the process.
However, a final part of the project was to have watchdog enabled to avoid lockups since my project is fairly critical.
As soon as I run the code with watchdog icon and auto clear watchdog enabled, my program still functions but very much slower. This is causing an over temperature condition because the program is not reacting quickly enough......I read somewhere in the forums that a bug exists that slows down delays but that this bug was to be fixed in V4.5
I am running v4.5 but can't find a way round this problem.
Any clues anybody.
Code attached
Dave
I have almost finished my code with great thanks to members debugging my efforts. I learned a lot in the process.
However, a final part of the project was to have watchdog enabled to avoid lockups since my project is fairly critical.
As soon as I run the code with watchdog icon and auto clear watchdog enabled, my program still functions but very much slower. This is causing an over temperature condition because the program is not reacting quickly enough......I read somewhere in the forums that a bug exists that slows down delays but that this bug was to be fixed in V4.5
I am running v4.5 but can't find a way round this problem.
Any clues anybody.
Code attached
Dave
- Attachments
-
- HeaterControl_eval15.fcf
- (17.05 KiB) Downloaded 483 times
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Watchdog slowing program down
Hi Dave,
I thought it was indeed fixed with V4.5
Here is what I would suggest:
Only in configuration menu, disable Watchdog timer. (leave Auto Clear Watchdog in view, project options enabled)
If problem is resolved then microcontroller is resetting so more clear watchdog commands are required.
If problem not resolved then I can post a solution.
Edit:
I will carry out some testing tonight and post results with a solution anyway
Martin
I thought it was indeed fixed with V4.5
Here is what I would suggest:
Only in configuration menu, disable Watchdog timer. (leave Auto Clear Watchdog in view, project options enabled)
If problem is resolved then microcontroller is resetting so more clear watchdog commands are required.
If problem not resolved then I can post a solution.
Edit:
I will carry out some testing tonight and post results with a solution anyway
Martin
Martin
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Watchdog slowing program down
Before I can come up with a solution, we need to know cause of issue first.
I have tested a 16F883 1 sec delay with and without watchdog enabled and here are results of measuring 1sec delay: As you can see there is a 4% overhead increase.
I would not have thought that would cause issue your describing.
Can you also try with both auto clear watchdog and watchdog timer disabled please then post all results.
Thanks
Martin
I have tested a 16F883 1 sec delay with and without watchdog enabled and here are results of measuring 1sec delay: As you can see there is a 4% overhead increase.
I would not have thought that would cause issue your describing.
Can you also try with both auto clear watchdog and watchdog timer disabled please then post all results.
Thanks
Martin
Martin
-
- Posts: 139
- Joined: Mon Sep 21, 2009 10:17 am
- Location: Leicester
- Has thanked: 35 times
- Been thanked: 12 times
Re: Watchdog slowing program down
Hi Martin,
I have tried what you suggested and there is approx 30% increase in timing of main program loop.
I will try and set up scope and publish the traces shortly but in the interim, could it be because the watchdog icon is in the read macros that are looping 64 times within the main loop? wouldn't this mean that the watchdog was being set and reset 64 times per loop?
Just a theory.
Dave
I have tried what you suggested and there is approx 30% increase in timing of main program loop.
I will try and set up scope and publish the traces shortly but in the interim, could it be because the watchdog icon is in the read macros that are looping 64 times within the main loop? wouldn't this mean that the watchdog was being set and reset 64 times per loop?
Just a theory.
Dave
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: Watchdog slowing program down
Hi Dave,
The watchdog command simply resets the watchdog count register back to 0 so there is no problem with calling it repeatedly.
From the top of my head the auto clear watchdog command adds the function to delays and hardware macro calls so if you have multiple of these calls in a loop then it might explain why you are getting such a longer delay.
The watchdog command simply resets the watchdog count register back to 0 so there is no problem with calling it repeatedly.
From the top of my head the auto clear watchdog command adds the function to delays and hardware macro calls so if you have multiple of these calls in a loop then it might explain why you are getting such a longer delay.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Watchdog slowing program down
Hi Dave,
I have posted a way round for you to have a look at.
Not tested on hardware, but idea is delay for 5ms (use watchdog clear command)then loop 5ms delay.
Eg. for 3secs = 3000ms
= 5ms*100*6
= 3000ms
I'm at work so rushed it a bit, hope it helps?
Martin
I have posted a way round for you to have a look at.
Not tested on hardware, but idea is delay for 5ms (use watchdog clear command)then loop 5ms delay.
Eg. for 3secs = 3000ms
= 5ms*100*6
= 3000ms
I'm at work so rushed it a bit, hope it helps?
Martin
- Attachments
-
- HeaterControl_eval16.fcf
- (20.49 KiB) Downloaded 461 times
Martin
-
- Posts: 139
- Joined: Mon Sep 21, 2009 10:17 am
- Location: Leicester
- Has thanked: 35 times
- Been thanked: 12 times
Re: Watchdog slowing program down
Hi Martin,
This is brilliant..........I can see what you are doing and although it hasn't cured the problem, this is only because the overall loop time needs to be included in the timings which I hadn't accurately done......I can take this from here so BIG thanks to you.
I am going to add a diag output to the unused port pin for test and debug purposes......something that can be scoped if ever returns come in.
Just to confirm though....I need watchdog enable bit set in chip config & auto clear watchdog disabled in project options.........correct?
Dave
This is brilliant..........I can see what you are doing and although it hasn't cured the problem, this is only because the overall loop time needs to be included in the timings which I hadn't accurately done......I can take this from here so BIG thanks to you.
I am going to add a diag output to the unused port pin for test and debug purposes......something that can be scoped if ever returns come in.
Just to confirm though....I need watchdog enable bit set in chip config & auto clear watchdog disabled in project options.........correct?
Dave
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Watchdog slowing program down
Hi Dave,
No problem.
What I do for diagnostics is set up rs232 on one pin.
Then I send to rs232 time elapsed in seconds and the value of variables.
That way I can not only tell if chip is resetting, I can tell why software may not be working since I can observe value of variables.
What I do to save space is have one temp string, then convert variable to string, and send string to rs232 every second.
Then the rs232 can be captured to a text file e.g by using capture text within hyperterminal (standard on PC's up to XP I believe?)
I can add it and post diagnostics if you would like to see?
Martin
No problem.
What I do for diagnostics is set up rs232 on one pin.
Then I send to rs232 time elapsed in seconds and the value of variables.
That way I can not only tell if chip is resetting, I can tell why software may not be working since I can observe value of variables.
What I do to save space is have one temp string, then convert variable to string, and send string to rs232 every second.
Then the rs232 can be captured to a text file e.g by using capture text within hyperterminal (standard on PC's up to XP I believe?)
I can add it and post diagnostics if you would like to see?
Martin
Martin
-
- Posts: 139
- Joined: Mon Sep 21, 2009 10:17 am
- Location: Leicester
- Has thanked: 35 times
- Been thanked: 12 times
Re: Watchdog slowing program down
Hi,
Thanks Martin, I understand what you're doing. i don't have the luxury of hyperterminal in Win7 64Bit pro. Don't know why they would drop such basic functionality......it hardly bloats the OS !
There are alternative comm apps on the net I can explore but for now, I'll run with this.
Certainly worth building into the next version release , along with the frost protection routine........gives me opportunity to bill the customer for updates...
Cheers
Dave
Thanks Martin, I understand what you're doing. i don't have the luxury of hyperterminal in Win7 64Bit pro. Don't know why they would drop such basic functionality......it hardly bloats the OS !
There are alternative comm apps on the net I can explore but for now, I'll run with this.
Certainly worth building into the next version release , along with the frost protection routine........gives me opportunity to bill the customer for updates...

Cheers
Dave
- Enamul
- Posts: 1772
- Joined: Mon Mar 05, 2012 11:34 pm
- Location: Nottingham, UK
- Has thanked: 271 times
- Been thanked: 814 times
Re: Watchdog slowing program down
Hi,
But you can still use hyper-terminal which is available in windows XP. or you can use terminal software for the link..
http://www.ddrservice.net/download/Soft ... l.exe.html
If you want to use hyper-terminal it self..I can post you for that which you can use in windows 7 64-bit machine. But the issue might be there is no serial port in new machines..solution for that is to use serial to usb converter. I bought one from Maple Electronics working fine for me..Just replaced the necessity of serial physical port.
But you can still use hyper-terminal which is available in windows XP. or you can use terminal software for the link..
http://www.ddrservice.net/download/Soft ... l.exe.html
If you want to use hyper-terminal it self..I can post you for that which you can use in windows 7 64-bit machine. But the issue might be there is no serial port in new machines..solution for that is to use serial to usb converter. I bought one from Maple Electronics working fine for me..Just replaced the necessity of serial physical port.
-
- Posts: 139
- Joined: Mon Sep 21, 2009 10:17 am
- Location: Leicester
- Has thanked: 35 times
- Been thanked: 12 times
Re: Watchdog slowing program down
Hi Ben,Benj wrote:Hi Dave,
The watchdog command simply resets the watchdog count register back to 0 so there is no problem with calling it repeatedly.
From the top of my head the auto clear watchdog command adds the function to delays and hardware macro calls so if you have multiple of these calls in a loop then it might explain why you are getting such a longer delay.
How does the auto clear watchdog command deal with delays longer than 18ms? Perhaps this should be explained more in depth on the forum or in the help files....it seems many people are getting 'confused / caught out by this important function. To have confidence in the function, FC users need some in depth detailing of such functions.
On a connected note, could I put forward a few suggestions for FC; based on my own experience as a novice or occasional coder..
1. A programmatic way of enabling and setting watchdog prescaler /postscaler options in order to extend watchdog timeout periods without C code knowledge. (watchdog setup module)
2. Enhancement to the GUI to enable visual grouping of sub- routines and loops. Flowcodes can get very visually complex and hard to follow at times even a simple 'draw a box around...' type of functionality would be helpful to some. Or, enable change colour of individual icons/text.
3. Ability to store textual notes within project files would enhance integration.
4. Version control.
Kindest Regards
Dave
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Watchdog slowing program down
Hi Dave, attacted is an example of diagnostics:
2nd is Voltage variable.
3rd is Temperature variable.
4th is Pattern
You can get diagnostics to display text as well e.g
Secs: 45 Vol: 345 Temp: 532 Pat: 2
I prefer non text for importing directly to a spread sheet
Using timer2 which only simulates in Flowcode 5 and above.
Therefore if you want to see it working you will need to use hardware or Real Pic simulator.
You will not be able to Flowcode to compile until attached 12F617.fcd is placed in C:\Program Files (x86)\Matrix Multimedia\Flowcode V4\FCD
(windows 64 bit)
Or
C:\Program Files\Matrix Multimedia\Flowcode V4\FCD
(windows 64 bit)
I use a TTL to usb converter
E.g from Farnell:
Although I have found CP211x type to be very reliable.
1st column is Elapsed seconds.2nd is Voltage variable.
3rd is Temperature variable.
4th is Pattern
You can get diagnostics to display text as well e.g
Secs: 45 Vol: 345 Temp: 532 Pat: 2
I prefer non text for importing directly to a spread sheet
Using timer2 which only simulates in Flowcode 5 and above.
Therefore if you want to see it working you will need to use hardware or Real Pic simulator.
You will not be able to Flowcode to compile until attached 12F617.fcd is placed in C:\Program Files (x86)\Matrix Multimedia\Flowcode V4\FCD
(windows 64 bit)
Or
C:\Program Files\Matrix Multimedia\Flowcode V4\FCD
(windows 64 bit)
I use a TTL to usb converter
E.g from Farnell:
Code: Select all
FTDI - TTL-232R-WE - CABLE,USB-TTL,SER CONV,5V,WIRE-END
Manufacturer: FTDI
Order Code: 1740364
Manufacturer Part No: TTL-232R-WE RoHS : Yes
Description CABLE,USB-TTL,SER CONV,5V,WIRE-END
Connector Type A:USB
Connector Type B:TTL-232R
- Attachments
-
- 12F617.fcd
- (10.46 KiB) Downloaded 418 times
-
- HeaterControlVgdb2tst617.zip
- (6.54 KiB) Downloaded 363 times
Martin
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: Watchdog slowing program down
The auto clear watchdog command when enabled basically replaces the ms and s delay functions with a loop containing a much smaller delay and the watchdog reset command. This loop will run until the original delay value has been reached.How does the auto clear watchdog command deal with delays longer than 18ms?
These are all great suggestions and hopefully we can work some if not all of them into the next version.1. A programmatic way of enabling and setting watchdog prescaler /postscaler options in order to extend watchdog timeout periods without C code knowledge. (watchdog setup module)
2. Enhancement to the GUI to enable visual grouping of sub- routines and loops. Flowcodes can get very visually complex and hard to follow at times even a simple 'draw a box around...' type of functionality would be helpful to some. Or, enable change colour of individual icons/text.
3. Ability to store textual notes within project files would enhance integration.
4. Version control.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Watchdog slowing program down
You can even add text conditions:
- Attachments
-
- HeaterControl_eval14 with Diag2.fcf
- (23.27 KiB) Downloaded 392 times
Martin