Chrono Tir

Dependencies:   mbed

main.cpp

Committer:
pathae
Date:
2020-02-03
Revision:
0:98f39b4055ea

File content as of revision 0:98f39b4055ea:

/* A port test of the arduino voltmeter example using the
4.3' PCT 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 9
and pin 10 of the mbed

The reset pin is not connected as reset function is not implemented

Pin 15 of the mbed has a potentiometer wiper connected to it
The other connections of the potentiometer are connected to +3.3V
and 0V

For setting up the display in Visie-Genie

The display has an angular meter objecr, a LED digits object, two buttons
and three static text objects.

The program sends digital voltage readings to the LED digits and
angular meter of the display module.

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 voltReading(PC_0);  //Potentiometer wiper connected to pin 15

int flag = 0;        //holds the "power status" of the voltmeter. flag = 0 means voltmeter is "off", flag = 1 means the voltmeter is "on".
float voltMeter;       //holds the digital voltage value to be sent to the angular meter
float voltLED;         //holds the digital voltage value to be sent to the LED digits

//Event handler for the 4d Systems display
void myGenieEventHandler(void)
{
    genieFrame Event;
    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.index == 1) {
                //printf("On Button pressed!\n\r");
                wait(0.2);
                flag=0;
            }
        }
    }

    //Cmd from a reported object (happens when an object read is requested)
    // if(Event.reportObject.cmd == GENIE_REPORT_OBJ)
    // {

    // }

}

int main()

{
    SetupGenie();
    genieAttachEventHandler(&myGenieEventHandler);
    //genieResetDisplay();

    printf("Langsters's mbed Visi-Genie Voltmeter demo \n\r");

    //genieWriteContrast(15); //set screen contrast to full brightness

             voltLED = 0.1;
    while(1) {
         printf("Test1\n\r");
        //voltLED = 0;

        if (flag == 1) {
            //printf("Flag status: %d \r\n", flag);
         /*   wait (0.1);
            voltLED = voltReading;
            wait (0.1);
            //printf("Volt bit Reading: %f \n\r",voltLED);
            voltLED = voltLED * 3.3;                                    //convert float reading to voltage
            //printf("voltLED: %f\r\n",voltLED);

           // voltLED = voltLED * 1000;
           voltLED = 2.2;
           printf("voltLED: %f\r\n",voltLED);
            genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00, voltLED);      //write to Leddigits0 the value of voltLED
            //wait (0.1);
            wait (1);
            voltMeter = voltLED/100;
            genieWriteObject(GENIE_OBJ_ANGULAR_METER, 0x00, voltMeter); //write to Angularmeter0 the value of voltMeter*/
        }

        else if(flag == 0)

        {
            //printf("Flag status: %d \r\n", flag);
           /* wait (0.1);
            voltLED = 0;
            genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00, 0);      //write to Leddigits0 the value of voltLED
            wait (0.1);

            //voltMeter = voltLED/100;
            genieWriteObject(GENIE_OBJ_ANGULAR_METER, 0x00, 0); //write to Angularmeter0 the value of voltMeter
            */
             voltLED = voltLED + 0.1;;
           printf("voltLED: %f\r\n",voltLED);
            genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00, voltLED*100);  
            wait (0.5);
            genieWriteObject(GENIE_OBJ_ANGULAR_METER, 0x00, voltLED*20); //write to Angularmeter0 the value of voltMeter
        }

    }

}