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.
Dependencies: mbed mbed-rtos MLX90614
main.cpp
00001 #include "UserInterface.h" 00002 #include "st7565LCD.h" 00003 00004 #define WAIT_TIME 0.3 00005 00006 ST7565 st7565(_MOSI, _SCLK, _CS, _RST, _A0); // mosi, sclk, cs, rst, a0 00007 Serial pc(USBTX, USBRX); //rx, tx 00008 00009 //buttons 00010 DigitalIn down(p19); 00011 DigitalIn select(p22); 00012 DigitalIn up(p20); 00013 00014 //laser 00015 DigitalOut laser_mod(p21, 0); 00016 00017 //gyro and thermo digital out 00018 DigitalOut gyro(P0_29, 0); //pin31 00019 DigitalOut thermo(P0_30, 0); //pin32 00020 00021 int main(){ 00022 //create god UI object 00023 UI * ui = new UI(&st7565); 00024 //initialize configuration 00025 //create main menu 00026 Menu * main_menu = new Menu(" Main Menu", &st7565); 00027 00028 00029 //create distance screens 00030 Measure *distance = new Measure(" Distance", &st7565, main_menu, &laser_mod); 00031 distance->setDescription("Select Start from the menu below to start laser."); 00032 main_menu->addItem(distance); 00033 00034 /* 00035 //create point-to-point screens 00036 Measure *p2p = new Measure(" Point-to-Point", &st7565, main_menu); 00037 p2p->setDescription("Select Start from the menu to start laser for #1 target."); 00038 Measure *p2p2 = new Measure(" Point-to-Point", &st7565, p2p); 00039 p2p2->setDescription("Press select button to fix target #1."); 00040 Measure *p2p3 = new Measure(" Point-to-Point", &st7565, p2p2); 00041 p2p3->setDescription("Press select button to fix target #2."); 00042 Measure *p2p4 = new Measure(" Point-to-Point", &st7565, p2p3); 00043 p2p4->setDescription("Distance between targets is:"); 00044 p2p4->setResult(true); //result screen 00045 00046 p2p->setNext(" Start", p2p2); 00047 p2p2->setNext(" Select", p2p3); 00048 p2p3->setNext(" Select", p2p4); 00049 p2p4->setNext(" Start again", p2p); 00050 main_menu->addItem(p2p); 00051 */ 00052 00053 //create level meter screen 00054 LevelMeter *lvl = new LevelMeter(&st7565, main_menu, &gyro, &thermo); 00055 main_menu->addItem(lvl); 00056 00057 //create compass screen 00058 Compass *compass = new Compass(&st7565, main_menu, &gyro, &thermo); 00059 main_menu->addItem(compass); 00060 00061 /* 00062 //create thermo screen 00063 Thermometer *thermo_screen = new Thermometer(&st7565, main_menu, &gyro, &thermo); 00064 main_menu->addItem(thermo_screen); 00065 */ 00066 00067 /* 00068 Measure *thermo = new Measure(" Thermometer", &st7565, main_menu); 00069 thermo->setDescription("Press Start from the menu to start laser."); 00070 Measure *thermo2 = new Measure(" Thermometer", &st7565, thermo); 00071 thermo2->setDescription("Press select button to fix target."); 00072 Measure *thermo3 = new Measure(" Thermometer", &st7565, main_menu); 00073 thermo3->setDescription("Target temperature is:"); 00074 thermo3->setResult(true); 00075 00076 thermo->setNext(" Start", thermo2); 00077 thermo2->setNext(" Start", thermo3); 00078 thermo3->setNext(" Start", thermo); 00079 */ 00080 00081 //create header object 00082 Header * header = new Header("", &st7565); 00083 00084 //set header and current menu 00085 ui->setCurrent(main_menu); 00086 ui->setHeader(header); 00087 ui->init(); 00088 00089 while(1) { 00090 if(select){ 00091 wait(0.1); 00092 //printf("select\n"); 00093 ui->update('y'); //ascii 121 00094 wait(WAIT_TIME); 00095 } 00096 else if(up){ 00097 wait(0.1); 00098 //printf("up\n"); 00099 ui->update('w'); //ascii 119 00100 wait(WAIT_TIME); 00101 } 00102 else if(down){ 00103 wait(0.1); 00104 //printf("down\n"); 00105 ui->update('s'); //ascii 115 00106 wait(WAIT_TIME); 00107 } 00108 } 00109 }
Generated on Thu Jul 14 2022 11:25:13 by
1.7.2