Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef struct {
- uint8_t dizaine:4;
- uint8_t unite:4;
- uint8_t dizieme:4;
- uint8_t centieme:4;
- uint8_t millieme:4;
- } nombreDecompose;
- 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;
- byte channelSelect = 0; //voie A par default
- byte cursorPosition = 0; //0 vDizaine| iUnité // 1 - Vunité | iDizieme // 2 vDizieme | iCentieme // 3 vCentieme | iMilieme
- nombreDecompose voie[3][4] = {
- { {1,2,5,6,0}, {0,1,0,0,0}, {1,5,0,0,0}, {0,1,5,0,0} }, //0 voie A 0 tension, 1 intensite, 2 ovp, 3 ocp
- { {2,5,0,0,0}, {0,2,5,0,5}, {2,7,0,0,0}, {0,3,0,0,0} }, //1 voie B
- { {0,3,3,6,0}, {0,0,0,1,0}, {0,5,0,0,0}, {0,0,0,0,0}}, //2 Voie C
- };
- void LectureDigit(){
- uint8_t nombre = 0;
- nombre = voie[channelSelect][cursorPosition].dizaine;
- }
- void EcritureDigit(byte nombreModif){
- uint16_t nb=0;
- voie[channelSelect][cursorPosition].dizaine=nombreModif;
- nb = calculNbrEntier();
- }
- uint16_t calculNbrEntier(){
- uint16_t nombre = 0;
- for(byte i = 0 ; i <4 ; i++){
- switch (i){
- case 0 : //dizaine
- if (nombre >=10000){ nombre += voie[channelSelect][0].dizaine * (10000 / pow(10,i)); }
- break;
- case 1 : //unité
- if (nombre >=1000){ nombre += voie[channelSelect][0].unite * (10000 / pow(10,i)); }
- break;
- case 2 : //dizieme
- if (nombre >=100){ nombre += voie[channelSelect][0].dizieme * (10000 / pow(10,i)); }
- break;
- case 3 : //centieme
- if (nombre >=100){ nombre += voie[channelSelect][0].centieme * (10000 / pow(10,i)); }
- break;
- case 4 : //milimme
- if (nombre >=100){ nombre += voie[channelSelect][0].millieme * (10000 / pow(10,i)); }
- break;
- }
- }
- return nombre;
- }
- void testLecture(){
- LectureDigit();
- calculNbrEntier();
- }
- void testEcriture(){
- EcritureDigit(3);
- }
- 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;
- Serial.println("");
- cpt1 = 0 ;
- tempsDepart = micros();
- for(unsigned long i= 0 ; i < iteTest1 ; i++){
- testLecture();
- }
- tempsArriver = micros();
- Serial.print(" test 1 Lecture : ");
- Serial.print(tempsArriver - tempsDepart);
- Serial.print(" micro/s pour ");
- Serial.println(iteTest1);
- tempsDepart = micros();
- cpt1 = 0 ;
- for(unsigned long i= 0 ; i < iteTest2 ; i++){
- testEcriture();
- }
- tempsArriver = micros();
- Serial.print("test 1 Ecriture : ");
- Serial.print(tempsArriver - tempsDepart);
- Serial.print(" micro/s pour ");
- Serial.println(iteTest2);
- Serial.println(" debut delay 3000");
- delay(3000);
- Serial.println(" fin delay 3000");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement