Aller au contenu


Contenu de gundark

Il y a 5 élément(s) pour gundark (recherche limitée depuis 02-mai 13)


#29357 Watchdog

Posté par gundark sur 10 février 2009 - 09:44 dans Electronique

Nous avons trouvé la panne. Pour chaque delai de plus ou égal à 500ms il faut faire juste avant un ClrWdt(); et pour tout ce qui est supérieure à 2,3s il faut le diviser. Voilà. J'espère que cela pourra servir à quelqu'un d'autre. +!



#29356 Watchdog

Posté par gundark sur 09 février 2009 - 09:34 dans Electronique

Bonjour à tous. Nous avons réussis à comprendre le watchdog et son fonctionnement, c'est très simple:
- il suffit d'intégrer au projet le "p18f458.h"
- d'initialiser le watchdog " #pragma config WDT = ON, WDTPS = 1 "
- et pour finir faire un " ClrWdt(); " dans le programme principal

Sur un petit programme sa marche parfaitement. Nous avons voulus l'intégrer à notre projet et là sa ne marche pas du tout, le " ClrWdt(); " dois se faire complètement au début et dans notre projet, on fais:

void main(void)
{
int i;
char toto[8]="toto";
char reset[8]="reset";
TRISB = 0x00;
LATB = 0x00;
ClrWdt();
initLCD();
clearLCD();
afficheLCD(0,1,reset);
for(i=0;i<10000;i++);

Il ne nous fais même pas l'affichage... Une idée?



#29353 Watchdog

Posté par gundark sur 27 janvier 2009 - 03:35 dans Electronique

Personne ne peut nous aider?



#29352 Watchdog

Posté par gundark sur 20 janvier 2009 - 10:29 dans Electronique

Avec la première solution (WDT=ON) nous avons l'impression que le watchdog effectue un reset permanent puisque le programme n'arrive pas au main. Avec la deuxième, ce que nous avons constaté en métant un "while(1);" dans le programme c'est que sa saute cette boucle infinis et que sa passe à la suite, il ne fais pas de reset du programme. Nous en avons mis plusieurs et même constat, le watchdog ne reset pas le programme.
Comment faire en sorte qu'il laisse le programme se dérouler normalement et faire un reset du programme lorsque qu'il détecte une boucle infinis?

Notre première solution:
#pragma config WDT = ON, WDTPS = 128
#pragma config OSC = ECIO
#pragma config OSCS= OFF , BOR= OFF
#pragma config STVR=OFF , LVP = OFF, DEBUG = OFF

Notre deuxième tentative:
CONFIG2Hbits.WDTPS2=1;
CONFIG2Hbits.WDTPS1=1;
CONFIG2Hbits.WDTPS0=1; //Watchdog timer postscale 128
CONFIG2Hbits.WDTEN=1; //Watchdog Timer Enable
RCONbits.IPEN=1; //Enable priority levels on interrupt
WDTCONbits.SWDTEN=1; //Watchdog timer is on

Le logiciel utilisé est MPLAB.



#29349 Watchdog

Posté par gundark sur 19 janvier 2009 - 02:11 dans Electronique

Bonjour,
je suis étudiant en iut et nous avons comme projet un ballon sonde. Nous sommes en train de vouloir activer le watchdog de notre p18f458 équipé d'un quartz à 4MHz. Malheureusement nous n'y parvenons pas. Nous avons validé le timer WDTEN=1, nous avons mis en route le timer du watchdog SWDTEN=1 le postscale réglé pour un diviseur de 128. Pourriez vous nous éclairer?
Merci.