20170923

Dependencies:   FXOS8700 Hexi_KW40Z Hexi_OLED_SSD1351

Committer:
i_am_kitsune
Date:
Sat Sep 23 08:46:56 2017 +0000
Revision:
0:9515bb2cd3b4
20170923;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
i_am_kitsune 0:9515bb2cd3b4 1 #include "mbed.h"
i_am_kitsune 0:9515bb2cd3b4 2 #include "FXOS8700.h"
i_am_kitsune 0:9515bb2cd3b4 3 #include "Hexi_OLED_SSD1351.h"
i_am_kitsune 0:9515bb2cd3b4 4 #include "Hexi_KW40Z.h"
i_am_kitsune 0:9515bb2cd3b4 5 #include "motion.h"
i_am_kitsune 0:9515bb2cd3b4 6 #include "button.h"
i_am_kitsune 0:9515bb2cd3b4 7 #include "string.h"
i_am_kitsune 0:9515bb2cd3b4 8 #include "font.h"
i_am_kitsune 0:9515bb2cd3b4 9
i_am_kitsune 0:9515bb2cd3b4 10 #define LED_ON 0
i_am_kitsune 0:9515bb2cd3b4 11 #define LED_OFF 1
i_am_kitsune 0:9515bb2cd3b4 12
i_am_kitsune 0:9515bb2cd3b4 13 void StartHaptic(void);
i_am_kitsune 0:9515bb2cd3b4 14 void StopHaptic(void const *n);
i_am_kitsune 0:9515bb2cd3b4 15 void ButtonRight(void);
i_am_kitsune 0:9515bb2cd3b4 16 void ButtonLeft(void);
i_am_kitsune 0:9515bb2cd3b4 17 void ButtonUp(void);
i_am_kitsune 0:9515bb2cd3b4 18 void ButtonDown(void);
i_am_kitsune 0:9515bb2cd3b4 19 void PassKey(void);
i_am_kitsune 0:9515bb2cd3b4 20
i_am_kitsune 0:9515bb2cd3b4 21
i_am_kitsune 0:9515bb2cd3b4 22 void txTask(void);
i_am_kitsune 0:9515bb2cd3b4 23 void read_accelTask(void);
i_am_kitsune 0:9515bb2cd3b4 24 void read_magTask(void);
i_am_kitsune 0:9515bb2cd3b4 25
i_am_kitsune 0:9515bb2cd3b4 26 void main_screen(void);
i_am_kitsune 0:9515bb2cd3b4 27 void accel_screen(void);
i_am_kitsune 0:9515bb2cd3b4 28 void mag_screen(void);
i_am_kitsune 0:9515bb2cd3b4 29
i_am_kitsune 0:9515bb2cd3b4 30 DigitalOut haptic(PTB9);
i_am_kitsune 0:9515bb2cd3b4 31 DigitalOut redLed(LED1,1);
i_am_kitsune 0:9515bb2cd3b4 32 DigitalOut greenLed(LED2,1);
i_am_kitsune 0:9515bb2cd3b4 33 DigitalOut blueLed(LED3,1);
i_am_kitsune 0:9515bb2cd3b4 34
i_am_kitsune 0:9515bb2cd3b4 35 Serial pc(USBTX, USBRX);
i_am_kitsune 0:9515bb2cd3b4 36 FXOS8700 accel(PTC11, PTC10);
i_am_kitsune 0:9515bb2cd3b4 37 FXOS8700 mag(PTC11, PTC10);
i_am_kitsune 0:9515bb2cd3b4 38 SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); // SSD1351 OLED Driver (MOSI,SCLK,POWER,CS,RST,DC)
i_am_kitsune 0:9515bb2cd3b4 39 KW40Z kw40z_device(PTE24, PTE25); // Instantiate the Hexi KW40Z Driver (UART TX, UART RX)
i_am_kitsune 0:9515bb2cd3b4 40 RtosTimer hapticTimer(StopHaptic, osTimerOnce);
i_am_kitsune 0:9515bb2cd3b4 41
i_am_kitsune 0:9515bb2cd3b4 42 Thread tx_Thread; //Create a Thread to handle sending BLE Sensor Data
i_am_kitsune 0:9515bb2cd3b4 43 Thread Read_accelThread;
i_am_kitsune 0:9515bb2cd3b4 44 Thread Read_magThread;
i_am_kitsune 0:9515bb2cd3b4 45
i_am_kitsune 0:9515bb2cd3b4 46 // Variables
i_am_kitsune 0:9515bb2cd3b4 47
i_am_kitsune 0:9515bb2cd3b4 48 float accel_rms = 0.0f; // RMS value from the sensor
i_am_kitsune 0:9515bb2cd3b4 49 float mag_rms = 0.0f;
i_am_kitsune 0:9515bb2cd3b4 50
i_am_kitsune 0:9515bb2cd3b4 51 const uint8_t *display_image; // Pointer for the image1 to be displayed
i_am_kitsune 0:9515bb2cd3b4 52 char text[20];
i_am_kitsune 0:9515bb2cd3b4 53 char text1[20]; // Text Buffer for dynamic value displayed
i_am_kitsune 0:9515bb2cd3b4 54 char text2[20]; // Text Buffer for dynamic value displayed
i_am_kitsune 0:9515bb2cd3b4 55 char text3[20]; // Text Buffer for dynamic value displayed
i_am_kitsune 0:9515bb2cd3b4 56
i_am_kitsune 0:9515bb2cd3b4 57 int8_t screen_num = 1;
i_am_kitsune 0:9515bb2cd3b4 58 bool ble_flag = false;
i_am_kitsune 0:9515bb2cd3b4 59
i_am_kitsune 0:9515bb2cd3b4 60
i_am_kitsune 0:9515bb2cd3b4 61 // main() runs in its own thread in the OS
i_am_kitsune 0:9515bb2cd3b4 62 int main()
i_am_kitsune 0:9515bb2cd3b4 63 {
i_am_kitsune 0:9515bb2cd3b4 64 main_screen();
i_am_kitsune 0:9515bb2cd3b4 65 pc.printf("init btn num : %d\n", screen_num);
i_am_kitsune 0:9515bb2cd3b4 66 /* Register callbacks to application functions */
i_am_kitsune 0:9515bb2cd3b4 67 kw40z_device.attach_buttonLeft(&ButtonLeft);
i_am_kitsune 0:9515bb2cd3b4 68 kw40z_device.attach_buttonRight(&ButtonRight);
i_am_kitsune 0:9515bb2cd3b4 69 kw40z_device.attach_buttonUp(&ButtonUp);
i_am_kitsune 0:9515bb2cd3b4 70 kw40z_device.attach_buttonDown(&ButtonDown);
i_am_kitsune 0:9515bb2cd3b4 71 kw40z_device.attach_passkey(&PassKey);
i_am_kitsune 0:9515bb2cd3b4 72
i_am_kitsune 0:9515bb2cd3b4 73 accel.accel_config();
i_am_kitsune 0:9515bb2cd3b4 74 mag.mag_config();
i_am_kitsune 0:9515bb2cd3b4 75
i_am_kitsune 0:9515bb2cd3b4 76 //tx_Thread.start(txTask);
i_am_kitsune 0:9515bb2cd3b4 77
i_am_kitsune 0:9515bb2cd3b4 78 while (true) {
i_am_kitsune 0:9515bb2cd3b4 79
i_am_kitsune 0:9515bb2cd3b4 80 if(screen_num <= 0) {
i_am_kitsune 0:9515bb2cd3b4 81 screen_num = 1;
i_am_kitsune 0:9515bb2cd3b4 82 } else if(screen_num >= 3) {
i_am_kitsune 0:9515bb2cd3b4 83 screen_num = 2;
i_am_kitsune 0:9515bb2cd3b4 84 }
i_am_kitsune 0:9515bb2cd3b4 85 blueLed = !kw40z_device.GetAdvertisementMode(); /*Indicate BLE Advertisment Mode*/
i_am_kitsune 0:9515bb2cd3b4 86 }
i_am_kitsune 0:9515bb2cd3b4 87 }
i_am_kitsune 0:9515bb2cd3b4 88
i_am_kitsune 0:9515bb2cd3b4 89 void StartHaptic(void)
i_am_kitsune 0:9515bb2cd3b4 90 {
i_am_kitsune 0:9515bb2cd3b4 91 hapticTimer.start(50);
i_am_kitsune 0:9515bb2cd3b4 92 haptic = 1;
i_am_kitsune 0:9515bb2cd3b4 93 }
i_am_kitsune 0:9515bb2cd3b4 94
i_am_kitsune 0:9515bb2cd3b4 95 void StopHaptic(void const *n)
i_am_kitsune 0:9515bb2cd3b4 96 {
i_am_kitsune 0:9515bb2cd3b4 97 haptic = 0;
i_am_kitsune 0:9515bb2cd3b4 98 hapticTimer.stop();
i_am_kitsune 0:9515bb2cd3b4 99 }
i_am_kitsune 0:9515bb2cd3b4 100
i_am_kitsune 0:9515bb2cd3b4 101 /****************************Call Back Functions*******************************/
i_am_kitsune 0:9515bb2cd3b4 102 void ButtonRight(void)
i_am_kitsune 0:9515bb2cd3b4 103 {
i_am_kitsune 0:9515bb2cd3b4 104 StartHaptic();
i_am_kitsune 0:9515bb2cd3b4 105 screen_num++;
i_am_kitsune 0:9515bb2cd3b4 106
i_am_kitsune 0:9515bb2cd3b4 107 if(screen_num == 1 || screen_num == 0) {
i_am_kitsune 0:9515bb2cd3b4 108 main_screen();
i_am_kitsune 0:9515bb2cd3b4 109 } else if(screen_num == 2) {
i_am_kitsune 0:9515bb2cd3b4 110 accel_screen();
i_am_kitsune 0:9515bb2cd3b4 111 } else {
i_am_kitsune 0:9515bb2cd3b4 112
i_am_kitsune 0:9515bb2cd3b4 113 }
i_am_kitsune 0:9515bb2cd3b4 114
i_am_kitsune 0:9515bb2cd3b4 115 pc.printf("btn num : %d\n", screen_num);
i_am_kitsune 0:9515bb2cd3b4 116
i_am_kitsune 0:9515bb2cd3b4 117 }
i_am_kitsune 0:9515bb2cd3b4 118
i_am_kitsune 0:9515bb2cd3b4 119 void ButtonLeft(void)
i_am_kitsune 0:9515bb2cd3b4 120 {
i_am_kitsune 0:9515bb2cd3b4 121 StartHaptic();
i_am_kitsune 0:9515bb2cd3b4 122 screen_num--;
i_am_kitsune 0:9515bb2cd3b4 123 if(screen_num == 1 || screen_num == 0) {
i_am_kitsune 0:9515bb2cd3b4 124 main_screen();
i_am_kitsune 0:9515bb2cd3b4 125
i_am_kitsune 0:9515bb2cd3b4 126 } else if(screen_num == 2) {
i_am_kitsune 0:9515bb2cd3b4 127 accel_screen();
i_am_kitsune 0:9515bb2cd3b4 128 } else {
i_am_kitsune 0:9515bb2cd3b4 129 }
i_am_kitsune 0:9515bb2cd3b4 130
i_am_kitsune 0:9515bb2cd3b4 131 if(screen_num <= 1 && ble_flag == true) {
i_am_kitsune 0:9515bb2cd3b4 132 kw40z_device.ToggleAdvertisementMode();
i_am_kitsune 0:9515bb2cd3b4 133 ble_flag = false;
i_am_kitsune 0:9515bb2cd3b4 134 }
i_am_kitsune 0:9515bb2cd3b4 135
i_am_kitsune 0:9515bb2cd3b4 136 pc.printf("btn num af : %d\n", screen_num);
i_am_kitsune 0:9515bb2cd3b4 137 ble_flag = true;
i_am_kitsune 0:9515bb2cd3b4 138
i_am_kitsune 0:9515bb2cd3b4 139 }
i_am_kitsune 0:9515bb2cd3b4 140
i_am_kitsune 0:9515bb2cd3b4 141 void ButtonUp(void)
i_am_kitsune 0:9515bb2cd3b4 142 {
i_am_kitsune 0:9515bb2cd3b4 143 StartHaptic();
i_am_kitsune 0:9515bb2cd3b4 144 }
i_am_kitsune 0:9515bb2cd3b4 145
i_am_kitsune 0:9515bb2cd3b4 146 void ButtonDown(void)
i_am_kitsune 0:9515bb2cd3b4 147 {
i_am_kitsune 0:9515bb2cd3b4 148 StartHaptic();
i_am_kitsune 0:9515bb2cd3b4 149
i_am_kitsune 0:9515bb2cd3b4 150 }
i_am_kitsune 0:9515bb2cd3b4 151
i_am_kitsune 0:9515bb2cd3b4 152 void PassKey(void)
i_am_kitsune 0:9515bb2cd3b4 153 {
i_am_kitsune 0:9515bb2cd3b4 154 StartHaptic();
i_am_kitsune 0:9515bb2cd3b4 155 strcpy((char *) text,"PAIR CODE");
i_am_kitsune 0:9515bb2cd3b4 156 oled.TextBox((uint8_t *)text,0,0,95,18);
i_am_kitsune 0:9515bb2cd3b4 157
i_am_kitsune 0:9515bb2cd3b4 158 /* Display Bond Pass Key in a 95px by 18px textbox at x=0,y=40 */
i_am_kitsune 0:9515bb2cd3b4 159 sprintf(text,"%d", kw40z_device.GetPassKey());
i_am_kitsune 0:9515bb2cd3b4 160 oled.TextBox((uint8_t *)text,0,15,95,18);
i_am_kitsune 0:9515bb2cd3b4 161 }
i_am_kitsune 0:9515bb2cd3b4 162
i_am_kitsune 0:9515bb2cd3b4 163 /* txTask() transmits the sensor data */
i_am_kitsune 0:9515bb2cd3b4 164 void txTask(void)
i_am_kitsune 0:9515bb2cd3b4 165 {
i_am_kitsune 0:9515bb2cd3b4 166 float accel_data[3] = {0}; // Storage for the data from the sensor
i_am_kitsune 0:9515bb2cd3b4 167 float mag_data[3] = {0};
i_am_kitsune 0:9515bb2cd3b4 168 int16_t ax, ay, az; // Integer value from the sensor to be displayed
i_am_kitsune 0:9515bb2cd3b4 169 int16_t mx, my, mz; // Integer value from the sensor to be displayed
i_am_kitsune 0:9515bb2cd3b4 170
i_am_kitsune 0:9515bb2cd3b4 171 accel.accel_config();
i_am_kitsune 0:9515bb2cd3b4 172 mag.mag_config();
i_am_kitsune 0:9515bb2cd3b4 173
i_am_kitsune 0:9515bb2cd3b4 174 while (true) {
i_am_kitsune 0:9515bb2cd3b4 175
i_am_kitsune 0:9515bb2cd3b4 176 accel.acquire_accel_data_g(accel_data);
i_am_kitsune 0:9515bb2cd3b4 177
i_am_kitsune 0:9515bb2cd3b4 178 ax = (int16_t)(accel_data[0] );
i_am_kitsune 0:9515bb2cd3b4 179 ay = (int16_t)(accel_data[1] );
i_am_kitsune 0:9515bb2cd3b4 180 az = (int16_t)(accel_data[2] );
i_am_kitsune 0:9515bb2cd3b4 181 wait(0.01);
i_am_kitsune 0:9515bb2cd3b4 182
i_am_kitsune 0:9515bb2cd3b4 183 mag.acquire_mag_data_uT(mag_data);
i_am_kitsune 0:9515bb2cd3b4 184 mx = (int16_t)mag_data[0];
i_am_kitsune 0:9515bb2cd3b4 185 my = (int16_t)mag_data[1];
i_am_kitsune 0:9515bb2cd3b4 186 mz = (int16_t)mag_data[2];
i_am_kitsune 0:9515bb2cd3b4 187 wait(0.01);
i_am_kitsune 0:9515bb2cd3b4 188
i_am_kitsune 0:9515bb2cd3b4 189 /*Notify Hexiwear App that it is running Sensor Tag mode*/
i_am_kitsune 0:9515bb2cd3b4 190 kw40z_device.SendSetApplicationMode(GUI_CURRENT_APP_SENSOR_TAG);
i_am_kitsune 0:9515bb2cd3b4 191 kw40z_device.SendAccel(ax,ay,az); /*Send weight using acclero service*/
i_am_kitsune 0:9515bb2cd3b4 192 wait(0.01);
i_am_kitsune 0:9515bb2cd3b4 193 kw40z_device.SendMag(mx, my, mz); /*Send weight using magnitute service*/
i_am_kitsune 0:9515bb2cd3b4 194
i_am_kitsune 0:9515bb2cd3b4 195 Thread::wait(1000);
i_am_kitsune 0:9515bb2cd3b4 196 }
i_am_kitsune 0:9515bb2cd3b4 197 }
i_am_kitsune 0:9515bb2cd3b4 198
i_am_kitsune 0:9515bb2cd3b4 199 void read_accelTask(void)
i_am_kitsune 0:9515bb2cd3b4 200 {
i_am_kitsune 0:9515bb2cd3b4 201 float accel_data[3] = {0}; // Storage for the data from the sensor
i_am_kitsune 0:9515bb2cd3b4 202 float ax, ay, az; // Integer value from the sensor to be displayed
i_am_kitsune 0:9515bb2cd3b4 203
i_am_kitsune 0:9515bb2cd3b4 204 while(true) {
i_am_kitsune 0:9515bb2cd3b4 205
i_am_kitsune 0:9515bb2cd3b4 206 accel.acquire_accel_data_g(accel_data);
i_am_kitsune 0:9515bb2cd3b4 207
i_am_kitsune 0:9515bb2cd3b4 208 ax = accel_data[0];
i_am_kitsune 0:9515bb2cd3b4 209 ay = accel_data[1];
i_am_kitsune 0:9515bb2cd3b4 210 az = accel_data[2];
i_am_kitsune 0:9515bb2cd3b4 211
i_am_kitsune 0:9515bb2cd3b4 212 /* Format the value */
i_am_kitsune 0:9515bb2cd3b4 213 sprintf(text1,"%4.2f",ax);
i_am_kitsune 0:9515bb2cd3b4 214 /* Display time reading in 35px by 15px textbox at(x=55, y=40) */
i_am_kitsune 0:9515bb2cd3b4 215 oled.Label((uint8_t *)text1,70,0); //Increase textbox for more digits
i_am_kitsune 0:9515bb2cd3b4 216
i_am_kitsune 0:9515bb2cd3b4 217 /* Format the value */
i_am_kitsune 0:9515bb2cd3b4 218 sprintf(text2,"%4.2f",ay);
i_am_kitsune 0:9515bb2cd3b4 219 /* Display time reading in 35px by 15px textbox at(x=55, y=40) */
i_am_kitsune 0:9515bb2cd3b4 220 oled.Label((uint8_t *)text2,70,30); //Increase textbox for more digits
i_am_kitsune 0:9515bb2cd3b4 221
i_am_kitsune 0:9515bb2cd3b4 222 /* Format the value */
i_am_kitsune 0:9515bb2cd3b4 223 sprintf(text3,"%4.2f",az);
i_am_kitsune 0:9515bb2cd3b4 224 /* Display time reading in 35px by 15px textbox at(x=55, y=40) */
i_am_kitsune 0:9515bb2cd3b4 225 oled.Label((uint8_t *)text3,70,60); //Increase textbox for more digits
i_am_kitsune 0:9515bb2cd3b4 226
i_am_kitsune 0:9515bb2cd3b4 227 Thread::wait(500);
i_am_kitsune 0:9515bb2cd3b4 228 }
i_am_kitsune 0:9515bb2cd3b4 229 }
i_am_kitsune 0:9515bb2cd3b4 230
i_am_kitsune 0:9515bb2cd3b4 231 void read_magTask(void)
i_am_kitsune 0:9515bb2cd3b4 232 {
i_am_kitsune 0:9515bb2cd3b4 233
i_am_kitsune 0:9515bb2cd3b4 234 float mag_data[3] = {0};
i_am_kitsune 0:9515bb2cd3b4 235 float mx, my, mz; // Integer value from the sensor to be displayed
i_am_kitsune 0:9515bb2cd3b4 236 while(1) {
i_am_kitsune 0:9515bb2cd3b4 237 mag.acquire_mag_data_uT(mag_data);
i_am_kitsune 0:9515bb2cd3b4 238 mx = mag_data[0];
i_am_kitsune 0:9515bb2cd3b4 239 my = mag_data[1];
i_am_kitsune 0:9515bb2cd3b4 240 mz = mag_data[2];
i_am_kitsune 0:9515bb2cd3b4 241
i_am_kitsune 0:9515bb2cd3b4 242 }
i_am_kitsune 0:9515bb2cd3b4 243 }
i_am_kitsune 0:9515bb2cd3b4 244
i_am_kitsune 0:9515bb2cd3b4 245 void main_screen(void)
i_am_kitsune 0:9515bb2cd3b4 246 {
i_am_kitsune 0:9515bb2cd3b4 247
i_am_kitsune 0:9515bb2cd3b4 248 oled_text_properties_t textProperties = {0};
i_am_kitsune 0:9515bb2cd3b4 249 oled.GetTextProperties(&textProperties);
i_am_kitsune 0:9515bb2cd3b4 250
i_am_kitsune 0:9515bb2cd3b4 251 /* Turn on the backlight of the OLED Display */
i_am_kitsune 0:9515bb2cd3b4 252 // 이것을 풀면 화면의 밝기가 좀 어두워짐 .. 주석처리하는게 좋음.
i_am_kitsune 0:9515bb2cd3b4 253 //oled.DimScreenON();
i_am_kitsune 0:9515bb2cd3b4 254
i_am_kitsune 0:9515bb2cd3b4 255 /* Fills the screen with solid black */
i_am_kitsune 0:9515bb2cd3b4 256 oled.FillScreen(COLOR_BLACK);
i_am_kitsune 0:9515bb2cd3b4 257
i_am_kitsune 0:9515bb2cd3b4 258 display_image = motion_detected_bmp;
i_am_kitsune 0:9515bb2cd3b4 259 oled.DrawImage(display_image,0,0);
i_am_kitsune 0:9515bb2cd3b4 260
i_am_kitsune 0:9515bb2cd3b4 261 /* Change font color to Blue */
i_am_kitsune 0:9515bb2cd3b4 262 textProperties.fontColor = COLOR_BLUE;
i_am_kitsune 0:9515bb2cd3b4 263 oled.SetTextProperties(&textProperties);
i_am_kitsune 0:9515bb2cd3b4 264
i_am_kitsune 0:9515bb2cd3b4 265 /* Display Bluetooth Label at x=17,y=65 */
i_am_kitsune 0:9515bb2cd3b4 266 strcpy((char *) text,"BLUETOOTH");
i_am_kitsune 0:9515bb2cd3b4 267 oled.Label((uint8_t *)text,17,80);
i_am_kitsune 0:9515bb2cd3b4 268 }
i_am_kitsune 0:9515bb2cd3b4 269
i_am_kitsune 0:9515bb2cd3b4 270 void accel_screen(void)
i_am_kitsune 0:9515bb2cd3b4 271 {
i_am_kitsune 0:9515bb2cd3b4 272
i_am_kitsune 0:9515bb2cd3b4 273 oled_text_properties_t textProperties = {0};
i_am_kitsune 0:9515bb2cd3b4 274 oled.GetTextProperties(&textProperties);
i_am_kitsune 0:9515bb2cd3b4 275
i_am_kitsune 0:9515bb2cd3b4 276 /* Turn on the backlight of the OLED Display */
i_am_kitsune 0:9515bb2cd3b4 277 // 이것을 풀면 화면의 밝기가 좀 어두워짐 .. 주석처리하는게 좋음.
i_am_kitsune 0:9515bb2cd3b4 278 //oled.DimScreenON();
i_am_kitsune 0:9515bb2cd3b4 279
i_am_kitsune 0:9515bb2cd3b4 280 /* Fills the screen with solid black */
i_am_kitsune 0:9515bb2cd3b4 281 oled.FillScreen(COLOR_BLACK);
i_am_kitsune 0:9515bb2cd3b4 282
i_am_kitsune 0:9515bb2cd3b4 283 display_image = gui_motionControl_acc_bmp;
i_am_kitsune 0:9515bb2cd3b4 284 oled.DrawImage(display_image,0,0);
i_am_kitsune 0:9515bb2cd3b4 285 display_image = buttonGroup_right_bmp;
i_am_kitsune 0:9515bb2cd3b4 286 oled.DrawImage(display_image,92,30);
i_am_kitsune 0:9515bb2cd3b4 287 display_image = buttonGroup_right_bmp;
i_am_kitsune 0:9515bb2cd3b4 288 oled.DrawImage(display_image,92,57);
i_am_kitsune 0:9515bb2cd3b4 289 }
i_am_kitsune 0:9515bb2cd3b4 290
i_am_kitsune 0:9515bb2cd3b4 291 void mag_screen(void)
i_am_kitsune 0:9515bb2cd3b4 292 {
i_am_kitsune 0:9515bb2cd3b4 293
i_am_kitsune 0:9515bb2cd3b4 294 oled.FillScreen(COLOR_BLACK);
i_am_kitsune 0:9515bb2cd3b4 295 display_image = gui_motionControl_gyro_bmp;
i_am_kitsune 0:9515bb2cd3b4 296 oled.DrawImage(display_image,0,0);
i_am_kitsune 0:9515bb2cd3b4 297 display_image = buttonGroup_right_bmp;
i_am_kitsune 0:9515bb2cd3b4 298 oled.DrawImage(display_image,92,30);
i_am_kitsune 0:9515bb2cd3b4 299 display_image = buttonGroup_right_bmp;
i_am_kitsune 0:9515bb2cd3b4 300 oled.DrawImage(display_image,92,57);
i_am_kitsune 0:9515bb2cd3b4 301
i_am_kitsune 0:9515bb2cd3b4 302 }