Go Down

Topic: tachymètre sur ELCD série (Read 1 time) previous topic - next topic

Mike74

Un delay ? avant la boucle mais le reste de ma boucle ne doit pas être impactée car il n 'y a pas que le tachymètre qui tourne.

Jean-François

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Mike74

ah oui, je vais essayé, as tu un exemple ?

Jean-François

Ici :

http://arduino.cc/en/Tutorial/BlinkWithoutDelay

Dans le 1er if, tu remplaces le traitement de l'état de la led par l'affichage  de ton écran.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Mike74

bonjour à tous, voilà j'utilise ce code pour afficher la vitesse de rotation rpm (0 à 99000 tr.min) d'un moteur (capteur magnétique), la valeur est correcte est stable en liaison série sur le monitor, mais lorsque je souhaite afficher la valeur sur mon afficheur, toous les chiffres défilent trop vite, rien n'est stable.

Comment faire, merci pour votre aide.

Code: [Select]


// Tachymetre
if (rpmcount >= 40 ){
  rpm = 60*1000/(millis() - timeold)*rpmcount;
  timeold = millis();
  rpmcount = 0;
  rpm1 = (String(rpm));
  ELCD_Cursor_Position(5, 1);
  ELCD_put_chr(rpm1.charAt(0));
  ELCD_Cursor_Position(6, 1);
  ELCD_put_chr(rpm1.charAt(1));
  ELCD_Cursor_Position(7, 1);
  ELCD_put_chr(rpm1.charAt(2));
  ELCD_Cursor_Position(8, 1);
  ELCD_put_chr(rpm1.charAt(3));
  ELCD_Cursor_Position(9, 1);
  ELCD_put_chr(rpm1.charAt(4));
}




fdufnews

Mike74 on te l'a déjà dit sur l'autre topic que tu avais ouvert si tu ne mets que des bouts de code on ne peut rien comprendre à ton problème.
On est dans l'impossibilité de juger de l'enchainement des tâches dans ton code et on ne peut donc pas savoir pourquoi un morceau de code ne s'exécute pas ou pourquoi un morceau de code s'exécute trop rapidement ou retourne des valeurs erronées.

Sorti de son contexte le code que tu nous montres est correct, mais s'il est appelé 100 fois par seconde les chiffres vont se brouiller. Si ce morceau de code est appelé de manière asynchrone par rapport à la mise à jour de la variable rpmcount les chiffres vont changer en permanence. Tu vois cela appelle déjà beaucoup de questions.

Donc si tu veux de réponses utiles il va falloir en dire un peu plus.

Mike74

Oui désolé, je sais , je me répète mais j'arrive pas à trouver de solution pour cette partie, tout le code est en ouverture de ce topic.

merci pour votre aide

Go Up