2017-06-04 1 views
1

Je veux que mon arduino me dise à quelle heure il fonctionne E.g. "C'est la 22ème fois que cette boucle est lancée." quelle commande/s dois-je utiliser? Je suis actuellement en utilisant ce code:Comment puis-je faire mon impression Arduino "la boucle est en cours d'exécution pour le temps ..."?

Serial.print("This loop has run "); 
Serial.print(loopsRun); 
Serial.println(" times."); 
loopsRun++; 

oui je l'ai déclaré toutes les variables, je veux juste savoir s'il y a un moyen de vérifier le dernier chiffre de tout int.

+0

S'il vous plaît fournir un [exemple minimal, complet et Vérifiable] (https://stackoverflow.com/help/mcve) – FortyTwo

+0

Vous cherchez le reste de la division par 10? Jetez un oeil à l'opérateur%. De toute façon, le suffixe st, nt, ... n'est pas approprié avec le message. Cela devrait être "la boucle tourne pour le temps ......". –

+0

@MichelBillaud Je suis d'accord, je déconseillerais ce type de message d'erreur dans une revue de code où je travaille, mais je pense que les suffixes "nd" etc. sont au cœur de la question d'OP, d'où ma réponse ci-dessous. – TomServo

Répondre

1

22% 10 = 2 vous dirais 22'nd » 1022% 10 = 2 vous dirais que 1022 'e'

27% 10 = 7 vous dirais 7 'e' 457 % 10 = 7 vous diriez 457 'e'

Est-ce que je reçois le motif correct? Si oui, alors vous avez besoin d'une instruction switch et un opérateur%

unsigned int remainder = loopsRun % 10; 
switch (remainder) 
{ 
    case 0: suffix = "th"; break; 
    case 1: suffix = "st"; break; 
    case 2: suffix = "nd"; break; 
    <etc> 

} 
+1

pardonner le nit-picking: l'opérateur C/C++% est _not_ l'opérateur de module, mais le reste après la division tronquée. Avant C++ 11 l'arrondi pour le quotient avec des nombres négatifs (comme -5/2) était _implementation defined_ pourrait renvoyer le retour de -2 ou -3 et ainsi le reste pourrait être -1 ou 1. Maintenant, la norme stipule que quotient est tronqué vers zéro ", et par conséquent -5% 2 == -1, ce qui diffère de la définition mathématique du module. Voir http://en.cppreference.com/w/cpp/language/operator_arithmetic. La variable loopsRun ne peut pas être négative, elle doit être non signée. –