Renesas GR-Peach LCD Interface
Dependencies: EthernetInterface HTTPD PubNub SDFileSystem mbed-rtos mbed picojson
Renesas GR-Peach LCD Interface
main.cpp@0:0b32d3eaabfe, 2015-10-23 (annotated)
- Committer:
- nikhilchaturtvedi
- Date:
- Fri Oct 23 20:16:05 2015 +0000
- Revision:
- 0:0b32d3eaabfe
Renesas LCD Interface
Who changed what in which revision?
User | Revision | Line number | New 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 | } |