Pages: [1]   Go Down
Author Topic: Re: Semblant de Reboot en cours de programme  (Read 928 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Peut-être que le watchdog est activé, et fait un reset au bout d'un certain temps...
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 198
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ou peut être un faut contact au niveau de l'alimentation qui la coupe brièvement et entraîne un reset de la carte
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci de votre aide.

J'opterai plus pour la proposition de Vicent, car ce n'est pas systéamtique et a un temps déterminé précis.

Mais même cette histoire d'alim qui se courperait je trouve cela bizarre car si la reinitialisation n'est pas systématique et a un moment précis, cest toujours en début de programme, pas au bout de 1,2 ou 3 heures.
Logged

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

le LCD qui consomme trop ? ou bien qui est mal initialisé ? le mien doit être alimenté avant que la carte électronique ne boote (ou plutôt la carte électronique doit commencer à lui parler après un temps suffisant pour boter).
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Effectivemeent Luj06 j'opetrai plus pour ta solution.

Mon ecran LCD me pose des problèmes depuis le début ja vais la changer.
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 198
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si tu alimentes le LCD avec l'alim de l'Arduino, il se peut que le régulateur se coupe car étant trop surchargé.
Logged

+33 76500
Offline Offline
Jr. Member
**
Karma: 0
Posts: 75
Arduinaute du dimanche
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai aussi ce soucis, mais moi je suis a vide (rien de raccorder) et j'alimente via le port usb

voici le prg qui marche mal et qui reboot par moment sans raison

Code:


// si EDFCOMPTEUR
/*
#define STX 2      
#define ESPACE ' '
#define ETX  3
*/
// si test
#define STX  'X'
#define ESPACE ' '
#define ETX  'Z'
/*
#define LF  10
#define CR  12
*/

#define LF  '('
#define CR  ')'

char etq[100]; //réservation de place pour stocker une suite de caractére
char don[100]; //réservation de place pour stocker une suite de caractére
char trame3[100]; //réservation de place pour stocker une suite de caractére

  


int bleu =  3;//led pour horraire bleu
int blanc =  4;//led pour horraire Blanc
int rouge =  5;//led Pour horraire Rouge
int pblanc=6;//led pour prévision Blanc
int pbleu=7;//led pour prévision Bleu
int prouge=8;//led pour prévision Rouge
int online=9;//sortie mise en puissance et led systéme en ligne
int chauffage=10;//sortie pour chauffage électrique
int eauchaude=11;//sortie pour eau chaude sanitaire
int prise1=12;//sortie pour prise commandé 1
int prise2=13;//sortie pour prise commandé 2
int a;
int b;//mémoire de cycle test effectué
int c;//mémoire de tarif bleu en cours
int d;//mémoire de tarif rouge en cours
int e;//mémoire de tarir blanc en cours
int f;//mémoire de prévision bleu
int g;//mémoire de prévision rouge
int h;//mémoire de prévision blanc
int i;//mémoire de heure creuse
int C;//mémoire de traitement
int D;//mémoire de traitement
int E;//mémoire de traitement
int I;//mémoire de traitement
int A;//comptage de cligno
const int pin_tpsol = 0;  //entrée analogique sonde de température
const int pin_th=1;  // entrée digital 1 pour contact ?

void setup()
{
   // initialize both serial ports:
  Serial.begin(1200);
  SetDefault();
  SetParity('e');
  SetStopBits(1);
  SetWordLength(7);
 

b=0;

 pinMode(bleu, OUTPUT);
 pinMode(blanc, OUTPUT);
 pinMode(rouge, OUTPUT);
 pinMode(pbleu, OUTPUT);
 pinMode(pblanc, OUTPUT);
 pinMode(prouge, OUTPUT);
 pinMode(online, OUTPUT);
 pinMode(chauffage, OUTPUT);
 pinMode(eauchaude, OUTPUT);
 pinMode(prise1, OUTPUT);
 pinMode(prise2, OUTPUT);
 pinMode(pin_th,INPUT);
}

void SetDefault()
{
    UCSR0C = UCSR0C & B11000001;
    UCSR0B = UCSR0B & B11111001;
}

void SetStopBits(int nbStopBits)
{
 //set stop bits
if (nbStopBits == 1)
  {
    UCSR0C = UCSR0C | B00000100;
  }
else // (stop == 2)
  {
    UCSR0C = UCSR0C | B00000000;
  }
}

void SetParity(int parity)
{
  if ((parity == 'O')|(parity == 'o'))
  {
    UCSR0C = UCSR0C | B00110000;
  }
  else if ((parity == 'E')|(parity == 'e'))
  {
    UCSR0C = UCSR0C | B00100000;
  }
  else // ((parity == 'N')|(parity == 'n')))
  {
    UCSR0C = UCSR0C | B00000000;
  }
}


void SetWordLength(int wordlength)
{
  //set word length
if (wordlength == 5)
  {
    UCSR0C = UCSR0C | B00000000;
  }
else if (wordlength == 6)
  {
    UCSR0C = UCSR0C | B00000010;
   }
else if (wordlength == 7)
  {
    UCSR0C = UCSR0C | B00000100;
  }
else if (wordlength == 9)
  {
    UCSR0C = UCSR0C | B00000110;
    UCSR0B = UCSR0B | B00000100;
  }
else // (wordlength == 8)
  {
    UCSR0C = UCSR0C | B00000110;
  }
}

void loop ()
//test de toutes les sorties

{  

  if (b==0)
  {
     b=1;
     c=5;
     d=0;
     e=0;
     f=0;
     g=0;
     h=0;
     i=0;
    
     Serial.println("=========== test sortie===============");
     Serial.println(a);
     Serial.println(b);
     Serial.println(c);
     Serial.println(d);
     Serial.println(e);
     Serial.println(f);
     Serial.println(g);
     Serial.println(h);
     Serial.println(i);
     Serial.println("=====================================");
     Serial.println("===========Systeme ok================");
     Serial.println("=====================================");
    
    
  }
  //digitalWrite (online, HIGH);



  // stocker les données dans la table etiquette
 
   char C = 0;
 
   if (Serial.available() > 0)  //si donnée quelquonque perçus
     {
      
      
       {int C = Serial.read(); //intégré les donnée dans la mémoire C
         if(C==LF) //si dans c je vois STX
          {
            C = Serial.read();
            delay(10);
          }
          Serial.println(); Serial.println(">>> LF reçu !");
          int i=0;// init index de remplissage des tables
          C=0;
          for( i = 0; C!=ESPACE;  i++)// ensuite on lit les octets de l'étiquette sur la série jusqu'à réception de ESPACE
          {
            C = Serial.read();
            etq[i]=C;
            delay(10);
          }
          etq[i-1]=0;
          C=0;
          for( i = 0; C!=ESPACE; i++) // ensuite on lit les octets de la donnée sur la série jusqu'à réception de ESPACE
          {
            C = Serial.read();
            don[i]=C;
            delay(10);
          }
          don[i-1]=0;
          
          // on passe le reste de la réception jusqu'à la fin de ligne
          if(C==CR) //si dans c je vois STX
          {
            C = Serial.read();
            delay(10);
          }
       }
          
          
          Serial.print("Etiquette : <");
          Serial.print(etq);
          Serial.println(">");
          
          Serial.print("Donnee : <");
          Serial.print(don);
          Serial.println(">");
          
          Serial.println();
       /*  
          if(strcmp(etq,"PTEC")==0)
          {
          }
          else if(strcmp(etq,"DEMAIN")==0)
        */  
     }
          

}  
  
 
Logged

Je ne conçois que trés peu, je recycle beaucoup les codes que je trouve.

+33 76500
Offline Offline
Jr. Member
**
Karma: 0
Posts: 75
Arduinaute du dimanche
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bpn je viens de préciser que la console doit fonctionner à 1200 baud en 7 bit paire

autre chose,

si je commence une saisie et que j'attend le prg redémarre à zéro
Logged

Je ne conçois que trés peu, je recycle beaucoup les codes que je trouve.

Pages: [1]   Go Up
Jump to: