Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 1:bc16891b0e66, committed 2020-04-08
- Comitter:
- stefcan
- Date:
- Wed Apr 08 12:17:04 2020 +0000
- Parent:
- 0:f38ea4ed5621
- Commit message:
- Sequenceur de tirs;
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r f38ea4ed5621 -r bc16891b0e66 main.cpp --- a/main.cpp Wed Jan 22 10:26:34 2020 +0000 +++ b/main.cpp Wed Apr 08 12:17:04 2020 +0000 @@ -1,28 +1,22 @@ -/* 4d systems touch screen display. -uses the mbed_genie library ported from the arduino -visie-genie library by Christian B - -The display serial TX and RX pins are connected to pin PA_9 -and pin PA_10 of the mbed - -The reset pin is not connected as reset function is not implemented - -For setting up the display in Visie-Genie - -The display has an gauge meter object, a LED digits object, two buttons -and three static text objects. - -The On and Off button has been set to report on change -The baud rate of the display is set to 115200 baud -*/ #include "mbed.h" #include "mbed_genie.h" -DigitalOut myled(LED1); //LED 1 for indication +AnalogIn analog_value(A0); +AnalogIn analog_value1(A1); -int flag = 0; //holds the "power status" of the voltmeter. flag = 0 means voltmeter is "off", flag = 1 means the voltmeter is "on". -float chrono; //holds the digital voltage value to be sent to the angular meter +int i; +int flag ; +int lum ; +float NB = 0 ; + +float conversion_tension=0; +float conversion_tension1=0; + +void batterie(); +void Interval(); +Ticker allbatterie ; +Ticker Intens ; //Event handler for the 4d Systems display void myGenieEventHandler(void) @@ -31,55 +25,339 @@ genieDequeueEvent(&Event); //event report from an object if(Event.reportObject.cmd == GENIE_REPORT_EVENT) { - /* - for example here we check if we received a message from 4dbuttons objects - the index is the button number, refer to the 4dgenie project to know the index - */ - if (Event.reportObject.object == GENIE_OBJ_4DBUTTON) { // If the Reported Message was from a button - if (Event.reportObject.index == 0) { - //printf("Off Button pressed!\n\r"); - wait(0.2); - flag=1; + + if (Event.reportObject.object == GENIE_OBJ_4DBUTTON) { // Permet de recuperer un message qui provient de l'un des 4D boutons + //PAGE DE LA LIGNE 1 + if (Event.reportObject.index == 9) { + flag=9; + } + + if (Event.reportObject.index == 10) { //Permet de relier le bouton 10 a la variable 10 + flag=10; + } + + if (Event.reportObject.index == 36) { + flag=36; + } + //PAGE DE LA LIGNE 2 + if (Event.reportObject.index == 12) { + flag=12; + } + + if (Event.reportObject.index == 13) { + flag=13; + } + + if (Event.reportObject.index == 38) { + flag=38; + } + //PAGE DE LA LIGNE 3 + if (Event.reportObject.index == 16) { + flag=16; + } + + if (Event.reportObject.index == 17) { + flag=17; + } + + if (Event.reportObject.index == 41) { + flag=41; + } + //PAGE DE LA LIGNE 4 + if (Event.reportObject.index == 19) { + flag=19; + } + + if (Event.reportObject.index == 20) { + flag=20; + } + + if (Event.reportObject.index == 42) { + flag=42; + } + //PAGE DE LA LIGNE 5 + if (Event.reportObject.index == 22) { + flag=22; + } + + if (Event.reportObject.index == 23) { + flag=23; } - if (Event.reportObject.index == 1) { - //printf("On Button pressed!\n\r"); - wait(0.2); - flag=0; + + if (Event.reportObject.index == 45) { + flag=45; + } + //PAGE DE LA LIGNE 6 + if (Event.reportObject.index == 25) { + flag=25; + } + + if (Event.reportObject.index == 26) { + flag=26; + } + + if (Event.reportObject.index == 46) { + flag=46; + } + //PAGE DE LA LIGNE 7 + if (Event.reportObject.index == 28) { + flag=28; + } + + if (Event.reportObject.index == 29) { + flag=29; + } + + if (Event.reportObject.index == 48) { + flag=48; + } + //PAGE DE LA LIGNE 8 + if (Event.reportObject.index == 31) { + flag=31; } - } - } + + if (Event.reportObject.index == 32) { + flag=32; + } + + if (Event.reportObject.index == 50) { + flag=50; + } + //CONTRAST + if (Event.reportObject.index == 61) { + lum=1; + } + + if (Event.reportObject.index == 60) { + lum=2; + } + + + } + + } +} - //Cmd from a reported object (happens when an object read is requested) - // if(Event.reportObject.cmd == GENIE_REPORT_OBJ) - // { - // } +void batterie(){ + //batterie 6V + conversion_tension=analog_value.read(); + conversion_tension=2.72/3.3; + conversion_tension=(conversion_tension*(100/1023.0))*1000; + genieWriteObject(GENIE_OBJ_TANK, 1,conversion_tension); + + //batterie 27V + conversion_tension1=analog_value.read(); + conversion_tension1=2.67/3.3; + conversion_tension1=(conversion_tension*(100/1023.0))*1000; + genieWriteObject(GENIE_OBJ_TANK, 0,conversion_tension1); + return; } -int main() - -{ - SetupGenie(); - genieAttachEventHandler(&myGenieEventHandler); - genieWriteContrast(10); //set screen contrast to full brightness - chrono=99; - - while(1) { +void Interval(){ + //PAGE DE LA LIGNE 1 + if (flag ==36) { + NB= 0; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00,NB); //Permet de reset l'intervalle + wait (0.1); + flag=0; + }else + + if (flag == 9) { + NB=NB+1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00,NB); //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur + wait (0.1); + }else + + if(flag == 10){ + NB=NB-1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00,NB); //Permet de diminuer et d'afficher l'intervalle sur l'afficheur + wait (0.1); + flag = 0 ; + } + //PAGE DE LA LIGNE 2 + if (flag ==38) { + NB= 0; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x01,NB); //Permet de reset l'intervalle + wait (0.1); + flag=0; + }else + + if (flag == 12) { + NB=NB+1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x01,NB); //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur + wait (0.1); + }else + + if(flag == 13){ + NB=NB-1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x01,NB); //Permet de diminuer et d'afficher l'intervalle sur l'afficheur + wait (0.1); + flag = 0 ; + } +//PAGE DE LA LIGNE 3 + if (flag ==41) { + NB= 0; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x02,NB); //Permet de reset l'intervalle + wait (0.1); + flag=0; + }else + + if (flag == 16) { + NB=NB+1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x02,NB); //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur + wait (0.1); + }else + + if(flag == 17){ + NB=NB-1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x02,NB); //Permet de diminuer et d'afficher l'intervalle sur l'afficheur + wait (0.1); + flag = 0 ; + } +//PAGE DE LA LIGNE 4 + if (flag ==42) { + NB= 0; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x03,NB); //Permet de reset l'intervalle + wait (0.1); + flag=0; + }else - if (flag == 1) { - //printf("Flag status: %d \r\n", flag); - chrono=chrono-1; - genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00, chrono); //write to Leddigits0 the value of voltLED - genieWriteObject(GENIE_OBJ_GAUGE , 0x00, chrono); //write to Angularmeter0 the value of voltMeter*/ - wait (0.5); - } - - else if(flag == 0){ - genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00, 0); - genieWriteObject(GENIE_OBJ_GAUGE , 0x00, 0); //write to Angularmeter0 the value of voltMeter - chrono=99; - wait (0.5); + if (flag == 19) { + NB=NB+1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x03,NB); //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur + wait (0.1); + }else + + if(flag == 20){ + NB=NB-1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x03,NB); //Permet de diminuer et d'afficher l'intervalle sur l'afficheur + wait (0.1); + flag = 0 ; + } +//PAGE DE LA LIGNE 5 + if (flag ==45) { + NB= 0; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x04,NB); //Permet de reset l'intervalle + wait (0.1); + flag=0; + }else + + if (flag == 22) { + NB=NB+1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x04,NB); //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur + wait (0.1); + }else + + if(flag == 23){ + NB=NB-1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x04,NB); //Permet de diminuer et d'afficher l'intervalle sur l'afficheur + wait (0.1); + flag = 0 ; + } +//PAGE DE LA LIGNE 6 + if (flag ==46) { + NB= 0; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x05,NB); //Permet de reset l'intervalle + wait (0.1); + flag=0; + }else + + if (flag == 25) { + NB=NB+1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x05,NB); //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur + wait (0.1); + }else + + if(flag == 26){ + NB=NB-1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x05,NB); //Permet de diminuer et d'afficher l'intervalle sur l'afficheur + wait (0.1); + flag = 0 ; + } +//PAGE DE LA LIGNE 7 + if (flag ==48) { + NB= 0; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x06,NB); //Permet de reset l'intervalle + wait (0.1); + flag=0; + }else + + if (flag == 28) { + NB=NB+1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x06,NB); //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur + wait (0.1); + }else + + if(flag == 29){ + NB=NB-1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x06,NB); //Permet de diminuer et d'afficher l'intervalle sur l'afficheur + wait (0.1); + flag = 0 ; + } +//PAGE DE LA LIGNE 8 + if (flag ==50) { + NB= 0; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x07,NB); //Permet de reset l'intervalle + wait (0.1); + flag=0; + }else + + if (flag == 31) { + NB=NB+1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x07,NB); //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur + wait (0.1); + }else + + if(flag == 32){ + NB=NB-1; + genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x07,NB); //Permet de diminuer et d'afficher l'intervalle sur l'afficheur + wait (0.1); + flag = 0 ; + } + if(NB==999){ + NB = 0; } - + } -} \ No newline at end of file +int main(){ + + SetupGenie(); + genieAttachEventHandler(&myGenieEventHandler); + + allbatterie.attach(&batterie,60); //Permet d'appeler la fonction batterie tous les 60 sec + + + + while(1) { + + Interval(); + //CONTRAST + + if(lum==1){ + i=i+1; + lum=0; + genieWriteContrast(i); + genieWriteObject(GENIE_OBJ_LED_DIGITS, 16,i); + } + if(lum==2){ + i=i-1; + lum=0; + genieWriteContrast(i); + genieWriteObject(GENIE_OBJ_LED_DIGITS, 16,i); + } + if(i>=15){ + i=15; + genieWriteContrast(i); + genieWriteObject(GENIE_OBJ_LED_DIGITS, 16,i); + } + if(i<1){ + i=1; + genieWriteContrast(i); + genieWriteObject(GENIE_OBJ_LED_DIGITS, 16,i); + } + + + + } +}