Renesas GR-Peach LCD Interface

Dependencies:   EthernetInterface HTTPD PubNub SDFileSystem mbed-rtos mbed picojson

Renesas GR-Peach LCD Interface

Committer:
nikhilchaturtvedi
Date:
Fri Oct 23 20:16:05 2015 +0000
Revision:
0:0b32d3eaabfe
Renesas LCD Interface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikhilchaturtvedi 0:0b32d3eaabfe 1 #include "mbed.h"
nikhilchaturtvedi 0:0b32d3eaabfe 2 #include "EthernetInterface.h"
nikhilchaturtvedi 0:0b32d3eaabfe 3 #include "gen_helper.h"
nikhilchaturtvedi 0:0b32d3eaabfe 4 #include "FATFileSystem.h"
nikhilchaturtvedi 0:0b32d3eaabfe 5 #include "ff.h"
nikhilchaturtvedi 0:0b32d3eaabfe 6 #include "SDFileSystem.h"
nikhilchaturtvedi 0:0b32d3eaabfe 7
nikhilchaturtvedi 0:0b32d3eaabfe 8
nikhilchaturtvedi 0:0b32d3eaabfe 9 #define INCREASE_PWM_VALUE 0
nikhilchaturtvedi 0:0b32d3eaabfe 10 #define DECREASE_PWM_VALUE 1
nikhilchaturtvedi 0:0b32d3eaabfe 11 #define DRAW_ON_SCREEN 2
nikhilchaturtvedi 0:0b32d3eaabfe 12 #define FADE_SCREEN_AND_TURN_OFF 3
nikhilchaturtvedi 0:0b32d3eaabfe 13 #define INCREASE_SCREEN_BRIGHTNESS_TO_FULL 4
nikhilchaturtvedi 0:0b32d3eaabfe 14 #define SET_UP_SCREEN 5
nikhilchaturtvedi 0:0b32d3eaabfe 15
nikhilchaturtvedi 0:0b32d3eaabfe 16 /* Init connections */
nikhilchaturtvedi 0:0b32d3eaabfe 17 void init();
nikhilchaturtvedi 0:0b32d3eaabfe 18 void read_temperature();
nikhilchaturtvedi 0:0b32d3eaabfe 19
nikhilchaturtvedi 0:0b32d3eaabfe 20 Serial main_console(USBTX, USBRX);
nikhilchaturtvedi 0:0b32d3eaabfe 21 SDFileSystem sd(P8_5, P8_6, P8_3, P8_4, "sd"); // SD card interface through SPI
nikhilchaturtvedi 0:0b32d3eaabfe 22 SPI temp_sense(P4_6, P4_7, P4_4);
nikhilchaturtvedi 0:0b32d3eaabfe 23 DigitalOut cs(P4_5);
nikhilchaturtvedi 0:0b32d3eaabfe 24
nikhilchaturtvedi 0:0b32d3eaabfe 25 EthernetInterface ethInf;
nikhilchaturtvedi 0:0b32d3eaabfe 26 TCPSocketServer server;
nikhilchaturtvedi 0:0b32d3eaabfe 27 TCPSocketConnection* sock_connection;
nikhilchaturtvedi 0:0b32d3eaabfe 28 gen_helper *helper; // Helper instance
nikhilchaturtvedi 0:0b32d3eaabfe 29
nikhilchaturtvedi 0:0b32d3eaabfe 30 int main()
nikhilchaturtvedi 0:0b32d3eaabfe 31 {
nikhilchaturtvedi 0:0b32d3eaabfe 32 main_console.printf("START\n");
nikhilchaturtvedi 0:0b32d3eaabfe 33 helper = new gen_helper(P10_14, P10_15, P10_12, P10_13, P3_15, P3_14, USBTX, USBRX, P4_6);
nikhilchaturtvedi 0:0b32d3eaabfe 34 helper->init_console();
nikhilchaturtvedi 0:0b32d3eaabfe 35 helper->lcd_init();
nikhilchaturtvedi 0:0b32d3eaabfe 36
nikhilchaturtvedi 0:0b32d3eaabfe 37 main_console.printf("Starting connecting in V2 \n");
nikhilchaturtvedi 0:0b32d3eaabfe 38
nikhilchaturtvedi 0:0b32d3eaabfe 39 /* Init Eth on a static IP and gateway */
nikhilchaturtvedi 0:0b32d3eaabfe 40 ethInf.init(HOST_IP_ADDR, HOST_SUBNET, HOST_GATEWAY);
nikhilchaturtvedi 0:0b32d3eaabfe 41 main_console.printf("Init eth\n");
nikhilchaturtvedi 0:0b32d3eaabfe 42
nikhilchaturtvedi 0:0b32d3eaabfe 43 ethInf.connect();
nikhilchaturtvedi 0:0b32d3eaabfe 44 main_console.printf("Connected eth\n");
nikhilchaturtvedi 0:0b32d3eaabfe 45
nikhilchaturtvedi 0:0b32d3eaabfe 46 /* Init the TCP server after init Ethernet */
nikhilchaturtvedi 0:0b32d3eaabfe 47 init();
nikhilchaturtvedi 0:0b32d3eaabfe 48
nikhilchaturtvedi 0:0b32d3eaabfe 49 return 0; //should never come here
nikhilchaturtvedi 0:0b32d3eaabfe 50 }
nikhilchaturtvedi 0:0b32d3eaabfe 51
nikhilchaturtvedi 0:0b32d3eaabfe 52 /* Start the eth interface and listen for incoming connections */
nikhilchaturtvedi 0:0b32d3eaabfe 53 void init()
nikhilchaturtvedi 0:0b32d3eaabfe 54 {
nikhilchaturtvedi 0:0b32d3eaabfe 55 /* Bind this server to a specific port */
nikhilchaturtvedi 0:0b32d3eaabfe 56 main_console.printf("Binding\n");
nikhilchaturtvedi 0:0b32d3eaabfe 57 int bind_status = server.bind(HOST_PORT);
nikhilchaturtvedi 0:0b32d3eaabfe 58 main_console.printf("Bound on port %d with status %d\n", HOST_PORT, bind_status);
nikhilchaturtvedi 0:0b32d3eaabfe 59
nikhilchaturtvedi 0:0b32d3eaabfe 60 /* Listen on the port for incoming connections */
nikhilchaturtvedi 0:0b32d3eaabfe 61 int listen_status = server.listen();
nikhilchaturtvedi 0:0b32d3eaabfe 62 main_console.printf("Listen status %d\n", listen_status);
nikhilchaturtvedi 0:0b32d3eaabfe 63
nikhilchaturtvedi 0:0b32d3eaabfe 64 /* Accept incoming connections */
nikhilchaturtvedi 0:0b32d3eaabfe 65 sock_connection = new TCPSocketConnection();
nikhilchaturtvedi 0:0b32d3eaabfe 66 int conn_accept_status = server.accept(*sock_connection);
nikhilchaturtvedi 0:0b32d3eaabfe 67 main_console.printf("Connection accept status %d\n",conn_accept_status);
nikhilchaturtvedi 0:0b32d3eaabfe 68
nikhilchaturtvedi 0:0b32d3eaabfe 69 char meta_data[1] = {'\0'}; // holds the command from the client
nikhilchaturtvedi 0:0b32d3eaabfe 70
nikhilchaturtvedi 0:0b32d3eaabfe 71 while(1)
nikhilchaturtvedi 0:0b32d3eaabfe 72 {
nikhilchaturtvedi 0:0b32d3eaabfe 73 sock_connection->receive(meta_data, sizeof(meta_data));
nikhilchaturtvedi 0:0b32d3eaabfe 74
nikhilchaturtvedi 0:0b32d3eaabfe 75 switch((int)(meta_data[0] % 48)) {
nikhilchaturtvedi 0:0b32d3eaabfe 76
nikhilchaturtvedi 0:0b32d3eaabfe 77 case INCREASE_PWM_VALUE:
nikhilchaturtvedi 0:0b32d3eaabfe 78 main_console.printf("Increasing screen brightness\n");
nikhilchaturtvedi 0:0b32d3eaabfe 79 helper->pwm = helper->pwm + 0.1;
nikhilchaturtvedi 0:0b32d3eaabfe 80 break;
nikhilchaturtvedi 0:0b32d3eaabfe 81
nikhilchaturtvedi 0:0b32d3eaabfe 82 case DECREASE_PWM_VALUE:
nikhilchaturtvedi 0:0b32d3eaabfe 83 main_console.printf("Decreasing screen brightness\n");
nikhilchaturtvedi 0:0b32d3eaabfe 84 helper->pwm = helper->pwm - 0.1;
nikhilchaturtvedi 0:0b32d3eaabfe 85 break;
nikhilchaturtvedi 0:0b32d3eaabfe 86
nikhilchaturtvedi 0:0b32d3eaabfe 87 case DRAW_ON_SCREEN:
nikhilchaturtvedi 0:0b32d3eaabfe 88 //Divide the screen in two sections and fill them with different colours
nikhilchaturtvedi 0:0b32d3eaabfe 89 /*helper->fill_rect(0, 0, 128, 120, BROWN);
nikhilchaturtvedi 0:0b32d3eaabfe 90 helper->fill_rect(0, 120, 128, 160, SKYBLUE);*/
nikhilchaturtvedi 0:0b32d3eaabfe 91
nikhilchaturtvedi 0:0b32d3eaabfe 92 //Draw the pattern
nikhilchaturtvedi 0:0b32d3eaabfe 93 //helper->draw_pattern_helper();
nikhilchaturtvedi 0:0b32d3eaabfe 94 break;
nikhilchaturtvedi 0:0b32d3eaabfe 95
nikhilchaturtvedi 0:0b32d3eaabfe 96 case FADE_SCREEN_AND_TURN_OFF:
nikhilchaturtvedi 0:0b32d3eaabfe 97 main_console.printf("Fading screen\n");
nikhilchaturtvedi 0:0b32d3eaabfe 98
nikhilchaturtvedi 0:0b32d3eaabfe 99 for(float i = 0.0f; i < 1.0f; i+=0.1f)
nikhilchaturtvedi 0:0b32d3eaabfe 100 {
nikhilchaturtvedi 0:0b32d3eaabfe 101 main_console.printf("i %f\n", i);
nikhilchaturtvedi 0:0b32d3eaabfe 102 if(helper->pwm > 0.0f)
nikhilchaturtvedi 0:0b32d3eaabfe 103 {
nikhilchaturtvedi 0:0b32d3eaabfe 104 helper->pwm = helper->pwm - i;
nikhilchaturtvedi 0:0b32d3eaabfe 105 wait(0.3);
nikhilchaturtvedi 0:0b32d3eaabfe 106 }
nikhilchaturtvedi 0:0b32d3eaabfe 107 }
nikhilchaturtvedi 0:0b32d3eaabfe 108
nikhilchaturtvedi 0:0b32d3eaabfe 109 break;
nikhilchaturtvedi 0:0b32d3eaabfe 110
nikhilchaturtvedi 0:0b32d3eaabfe 111 case INCREASE_SCREEN_BRIGHTNESS_TO_FULL:
nikhilchaturtvedi 0:0b32d3eaabfe 112
nikhilchaturtvedi 0:0b32d3eaabfe 113 main_console.printf("Increasing screen brightness to full\n");
nikhilchaturtvedi 0:0b32d3eaabfe 114
nikhilchaturtvedi 0:0b32d3eaabfe 115 float cur_bright = helper->pwm;
nikhilchaturtvedi 0:0b32d3eaabfe 116
nikhilchaturtvedi 0:0b32d3eaabfe 117 for(float i = 0.0f; i < (1.0f - cur_bright); i+=0.1f)
nikhilchaturtvedi 0:0b32d3eaabfe 118 {
nikhilchaturtvedi 0:0b32d3eaabfe 119 helper->pwm = helper->pwm + i;
nikhilchaturtvedi 0:0b32d3eaabfe 120 wait(0.3);
nikhilchaturtvedi 0:0b32d3eaabfe 121 }
nikhilchaturtvedi 0:0b32d3eaabfe 122
nikhilchaturtvedi 0:0b32d3eaabfe 123 break;
nikhilchaturtvedi 0:0b32d3eaabfe 124
nikhilchaturtvedi 0:0b32d3eaabfe 125 case SET_UP_SCREEN:
nikhilchaturtvedi 0:0b32d3eaabfe 126 //helper->fill_rect(0, 0, 128, 160, WHITE); //Just fill the whole screen with a colour, in this case white.
nikhilchaturtvedi 0:0b32d3eaabfe 127 break;
nikhilchaturtvedi 0:0b32d3eaabfe 128
nikhilchaturtvedi 0:0b32d3eaabfe 129 default:
nikhilchaturtvedi 0:0b32d3eaabfe 130 main_console.printf("Junk\n");
nikhilchaturtvedi 0:0b32d3eaabfe 131 break;
nikhilchaturtvedi 0:0b32d3eaabfe 132 }
nikhilchaturtvedi 0:0b32d3eaabfe 133 }
nikhilchaturtvedi 0:0b32d3eaabfe 134 }
nikhilchaturtvedi 0:0b32d3eaabfe 135
nikhilchaturtvedi 0:0b32d3eaabfe 136
nikhilchaturtvedi 0:0b32d3eaabfe 137 /* Testing the temp sensor in a continuous loop */
nikhilchaturtvedi 0:0b32d3eaabfe 138 void read_temperature()
nikhilchaturtvedi 0:0b32d3eaabfe 139 {
nikhilchaturtvedi 0:0b32d3eaabfe 140 temp_sense.format(8, 3); //set SPI to 8-bit data rate
nikhilchaturtvedi 0:0b32d3eaabfe 141 while(1)
nikhilchaturtvedi 0:0b32d3eaabfe 142 {
nikhilchaturtvedi 0:0b32d3eaabfe 143 cs = 1;
nikhilchaturtvedi 0:0b32d3eaabfe 144 temp_sense.write(0x01);
nikhilchaturtvedi 0:0b32d3eaabfe 145 int temp = temp_sense.write(0x02);
nikhilchaturtvedi 0:0b32d3eaabfe 146 cs = 0;
nikhilchaturtvedi 0:0b32d3eaabfe 147 main_console.printf("Temp %d\n", temp);
nikhilchaturtvedi 0:0b32d3eaabfe 148 wait(0.5);
nikhilchaturtvedi 0:0b32d3eaabfe 149 }
nikhilchaturtvedi 0:0b32d3eaabfe 150
nikhilchaturtvedi 0:0b32d3eaabfe 151 }