Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint16_t nombreTension = 12560;
- uint16_t NombreIntensite= 250;
- const uint16_t MAXTENSION = 36000;
- const uint16_t MAXINTENSITE = 3000;
- unsigned long tempsDepart=0;
- unsigned long tempsArriver=0;
- unsigned long cpt1=0;
- byte nbrTest = 1;
- byte cptTest = 0;
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- }
- void loop() {
- // put your main code here, to run repeatedly:
- unsigned long iteTest1 = 10000000L;
- unsigned long iteTest2 = 1000;
- cpt1 = 0 ;
- tempsDepart = micros();
- for(unsigned long i= 0 ; i < iteTest1 ; i++){
- testLectureNombre();
- }
- tempsArriver = micros();
- Serial.print(" test 1 Lecture : ");
- Serial.print(tempsArriver - tempsDepart);
- Serial.print(" micro/s pour ");
- Serial.println(iteTest1);
- tempsDepart = millis();
- cpt1 = 0 ;
- for(unsigned long i= 0 ; i < iteTest2 ; i++){
- testEcritureNombre();
- }
- tempsArriver = millis();
- Serial.print("test 1 Ecriture : ");
- Serial.print(tempsArriver - tempsDepart);
- Serial.print(" mili /s pour ");
- Serial.println(iteTest2);
- Serial.println("debut delay 3000");
- delay(3000);
- Serial.println("fin delay 3000");
- }
- void testLectureNombre(){
- byte nbrLecture=0;
- nbrLecture = entierToDigit(nombreTension , 1) ;
- }
- void testEcritureNombre(){
- digitToEntier(&nombreTension,1,5);
- }
- byte entierToDigit(uint16_t nombre, byte pos){
- //position : 0 : Dizaine, 1 : unite ; 2 : dizieme ; 3: centieme ; 4 milieme
- byte digit = 0;
- switch (pos){
- case 0 : //dizaine
- if (nombre >=10000){ digit = (nombre / 10000)%10; }
- break;
- case 1 : //unité
- if (nombre >=1000){ digit = (nombre / 1000) % 10; }
- break;
- case 2 : //dizieme
- if (nombre >=100){ digit = (nombre / 100) % 10; }
- break;
- case 3 : //centieme
- if (nombre >=100){ digit = (nombre / 10) % 10; }
- break;
- case 4 : //milimme
- if (nombre >=100){ digit = nombre %10; }
- break;
- }
- return digit;
- }
- void digitToEntier (uint16_t *nombre, byte pos, byte digit){
- uint16_t entier=0;
- for(byte i = 0 ; i < 5 ; i++){
- if (i == pos){
- entier += digit * (10000 / (pow (10,i) ) );
- }
- else{
- entier += entierToDigit(*nombre,i) * (10000 / (pow (10,i) ) );
- }
- }
- *nombre = entier;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement