funcionando

Dependencies:   EPD_GDE021A1 mbed reScale

Fork of DISCO-L053C8_ePD_demo by ST

Committer:
Marcelocostanzo
Date:
Wed Sep 05 19:51:12 2018 +0000
Revision:
4:38ce0cfb14e2
Parent:
3:9229fd269ed0
Child:
5:03c1a5788923
sele??o de linhas

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Marcelocostanzo 3:9229fd269ed0 1 /*Código escrito por Marcelo Costanzo Miranda
Marcelocostanzo 3:9229fd269ed0 2 *Projeto feito conforme pedido do professor Silvio Szafir
Marcelocostanzo 3:9229fd269ed0 3 *
Marcelocostanzo 3:9229fd269ed0 4 *1. IHM com placa ST discovery com display ePaper
Marcelocostanzo 3:9229fd269ed0 5 *
Marcelocostanzo 3:9229fd269ed0 6 * 1.1) funções pré-definidas para escrita na tela, de 1 até 5 linhas,
Marcelocostanzo 3:9229fd269ed0 7 * reconfiguráveis e atualizaveis uma-a-uma;
Marcelocostanzo 3:9229fd269ed0 8 * 1.2) funcionamento através de conexão serial;
Marcelocostanzo 3:9229fd269ed0 9 * 1.3) conexão serial permite pelo menos três funções:
Marcelocostanzo 3:9229fd269ed0 10 * A) escolha da fonte e número de linhas;
Marcelocostanzo 3:9229fd269ed0 11 * B) limpar a tela;
Marcelocostanzo 3:9229fd269ed0 12 * C) imprimir (escrever) na linha/posição escolhida o texto enviado via comando ASCII serial;
Marcelocostanzo 3:9229fd269ed0 13 *
Marcelocostanzo 3:9229fd269ed0 14 * Sugerir outras funções relevantes e experimentar a possibilidade de "animação" gráfica,
Marcelocostanzo 3:9229fd269ed0 15 * como p.ex.: "simbologia de ventilação", ou "motor girando"
Marcelocostanzo 3:9229fd269ed0 16 *
Marcelocostanzo 3:9229fd269ed0 17 *2. Placa ST ESCEVAL funcionando com potenciometro externo
Marcelocostanzo 3:9229fd269ed0 18 * para controle velocidade de 0% até 100% da velocidade máxima, no motor BLDC.
Marcelocostanzo 3:9229fd269ed0 19 *
Marcelocostanzo 3:9229fd269ed0 20 *3. IHM com placa ST discovery (botões e sliders) para controle de placa ST ESCEVAL para motor BLDC
Marcelocostanzo 3:9229fd269ed0 21 *
Marcelocostanzo 3:9229fd269ed0 22 * 3.1) Possibilidade de IHM com placa ST discovery utilizando o recurso "slider" da placa,
Marcelocostanzo 3:9229fd269ed0 23 * para o ajuste da velocidade do motor BLDC entre 0% até 100% da velocidade máxima.
Marcelocostanzo 3:9229fd269ed0 24 *
Marcelocostanzo 3:9229fd269ed0 25 * 3.2) Possibilidade de IHM com placa ST discovery utilizando botão do usuário para ligar/desligar motor
Marcelocostanzo 3:9229fd269ed0 26 * 3.3) Possibilidade de IHM com placa ST discovery utilizando botões extras
Marcelocostanzo 3:9229fd269ed0 27 * para reversão do sentido da rotação
Marcelocostanzo 3:9229fd269ed0 28 *
Marcelocostanzo 3:9229fd269ed0 29 *4. Documentação "open source" com descritivo do código IHM e ESCEVAL,
Marcelocostanzo 3:9229fd269ed0 30 * contendo programação mbed e detalhamento das funções implementadas
Marcelocostanzo 3:9229fd269ed0 31 * e sua forma de configuração / funcionamento.
Marcelocostanzo 3:9229fd269ed0 32 *
Marcelocostanzo 3:9229fd269ed0 33 * São Paulo, SP
Marcelocostanzo 3:9229fd269ed0 34 * 30 de agosto de 2018
Marcelocostanzo 3:9229fd269ed0 35 *
Marcelocostanzo 3:9229fd269ed0 36 */
Marcelocostanzo 3:9229fd269ed0 37
bcostm 0:e5732175b08b 38 #include "mbed.h"
bcostm 0:e5732175b08b 39 #include "EPD_GDE021A1.h"
Marcelocostanzo 3:9229fd269ed0 40 #include"reScale.h"
Marcelocostanzo 3:9229fd269ed0 41
Marcelocostanzo 3:9229fd269ed0 42
Marcelocostanzo 3:9229fd269ed0 43 #define OFF 0.05
bcostm 0:e5732175b08b 44
bcostm 0:e5732175b08b 45 #define EPD_CS PA_15
bcostm 0:e5732175b08b 46 #define EPD_DC PB_11
bcostm 0:e5732175b08b 47 #define EPD_RESET PB_2
bcostm 0:e5732175b08b 48 #define EPD_BUSY PA_8
bcostm 0:e5732175b08b 49 #define EPD_POWER PB_10
bcostm 0:e5732175b08b 50 #define EPD_SPI_MOSI PB_5
bcostm 0:e5732175b08b 51 #define EPD_SPI_MISO PB_4
bcostm 0:e5732175b08b 52 #define EPD_SPI_SCK PB_3
bcostm 0:e5732175b08b 53
bcostm 0:e5732175b08b 54 EPD_GDE021A1 epd(EPD_CS, EPD_DC, EPD_RESET, EPD_BUSY, EPD_POWER, EPD_SPI_MOSI, EPD_SPI_MISO, EPD_SPI_SCK);
bcostm 0:e5732175b08b 55
bcostm 0:e5732175b08b 56 DigitalOut led1(LED1);
Marcelocostanzo 3:9229fd269ed0 57 DigitalIn button(PA_0);
Marcelocostanzo 3:9229fd269ed0 58 Ticker flipper;
Marcelocostanzo 3:9229fd269ed0 59 PwmOut myservo(D10);
Marcelocostanzo 3:9229fd269ed0 60 AnalogIn CONTROL(PA_1);
Marcelocostanzo 3:9229fd269ed0 61 reScale _scale(0,1,0.05,0.1);
Marcelocostanzo 3:9229fd269ed0 62 Serial pc(USBTX, USBRX); // tx, rx
bcostm 0:e5732175b08b 63
bcostm 0:e5732175b08b 64 //width 48
bcostm 0:e5732175b08b 65 //height 26
Marcelocostanzo 3:9229fd269ed0 66
bcostm 0:e5732175b08b 67 static uint8_t Battery_img[] = {
bcostm 0:e5732175b08b 68 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
bcostm 0:e5732175b08b 69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
bcostm 0:e5732175b08b 70 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0f,
bcostm 0:e5732175b08b 71 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x0c,
bcostm 0:e5732175b08b 72 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x08,
bcostm 0:e5732175b08b 73 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x08,
bcostm 0:e5732175b08b 74 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x08,
bcostm 0:e5732175b08b 75 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x08,
bcostm 0:e5732175b08b 76 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x18,
bcostm 0:e5732175b08b 77 0xfe, 0xff, 0xff, 0x3f, 0x10, 0x38,
bcostm 0:e5732175b08b 78 0xfe, 0xff, 0xff, 0x3f, 0x10, 0x38,
bcostm 0:e5732175b08b 79 0xfe, 0xff, 0xff, 0x3f, 0x10, 0x38,
bcostm 0:e5732175b08b 80 0xfe, 0xff, 0xff, 0x3f, 0xff, 0x39,
bcostm 0:e5732175b08b 81 0xfe, 0xff, 0xff, 0x3f, 0x10, 0x38,
bcostm 0:e5732175b08b 82 0xfe, 0xff, 0xff, 0x3f, 0x10, 0x38,
bcostm 0:e5732175b08b 83 0xfe, 0xff, 0xff, 0x3f, 0x10, 0x38,
bcostm 0:e5732175b08b 84 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x38,
bcostm 0:e5732175b08b 85 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x18,
bcostm 0:e5732175b08b 86 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x08,
bcostm 0:e5732175b08b 87 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x08,
bcostm 0:e5732175b08b 88 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x08,
bcostm 0:e5732175b08b 89 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x0c,
bcostm 0:e5732175b08b 90 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x0c,
bcostm 0:e5732175b08b 91 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0f,
bcostm 0:e5732175b08b 92 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
bcostm 0:e5732175b08b 93 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
bcostm 0:e5732175b08b 94 };
bcostm 0:e5732175b08b 95
Marcelocostanzo 3:9229fd269ed0 96 void flip() //time para envio das infos pela serial
Marcelocostanzo 3:9229fd269ed0 97 {
Marcelocostanzo 3:9229fd269ed0 98 led1=!led1;
Marcelocostanzo 3:9229fd269ed0 99 }
Marcelocostanzo 3:9229fd269ed0 100
Marcelocostanzo 3:9229fd269ed0 101 float p=0.05, k;
Marcelocostanzo 3:9229fd269ed0 102 uint8_t x=0, y=0, i=0;
Marcelocostanzo 4:38ce0cfb14e2 103 uint16_t l = 0;
Marcelocostanzo 3:9229fd269ed0 104 char c;
Marcelocostanzo 3:9229fd269ed0 105 char s[100];
Marcelocostanzo 3:9229fd269ed0 106 bool flag_init = 0;
bcostm 0:e5732175b08b 107 int main()
bcostm 0:e5732175b08b 108 {
Marcelocostanzo 3:9229fd269ed0 109 //-----As linhas abaixo configuram e ligam o ESC--------
Marcelocostanzo 3:9229fd269ed0 110 myservo.period(0.02f); //configura o periodo para o padrão PPM
Marcelocostanzo 3:9229fd269ed0 111 myservo = 0.1; //pulso mais longo 2mS
Marcelocostanzo 3:9229fd269ed0 112 wait(1);
Marcelocostanzo 3:9229fd269ed0 113 myservo = OFF; //pulso mais curto 1mS
Marcelocostanzo 3:9229fd269ed0 114 wait(1);
Marcelocostanzo 3:9229fd269ed0 115 //fim das configs do ESC
Marcelocostanzo 3:9229fd269ed0 116
Marcelocostanzo 3:9229fd269ed0 117 flipper.attach(&flip, 0.1);//interrupção para piscar o led, debug para saber se o uC travou
bcostm 0:e5732175b08b 118
Marcelocostanzo 3:9229fd269ed0 119
Marcelocostanzo 3:9229fd269ed0 120 //mensagens de boas vindas
bcostm 0:e5732175b08b 121 epd.Clear(EPD_COLOR_WHITE);
bcostm 0:e5732175b08b 122 epd.DisplayStringAtLine(5, (uint8_t*)"MBED", CENTER_MODE);
bcostm 0:e5732175b08b 123 epd.DisplayStringAtLine(3, (uint8_t*)"Epaper display", LEFT_MODE);
bcostm 0:e5732175b08b 124 epd.DisplayStringAtLine(2, (uint8_t*)"demo", LEFT_MODE);
bcostm 0:e5732175b08b 125 epd.DrawImage(130, 0, 48, 26, Battery_img);
bcostm 0:e5732175b08b 126 epd.DrawRect(50, 4, 60, 4);
bcostm 0:e5732175b08b 127 epd.RefreshDisplay();
Marcelocostanzo 3:9229fd269ed0 128 wait(1);
Marcelocostanzo 3:9229fd269ed0 129 epd.Clear(EPD_COLOR_WHITE);
Marcelocostanzo 3:9229fd269ed0 130 epd.RefreshDisplay();
Marcelocostanzo 3:9229fd269ed0 131 epd.Clear(EPD_COLOR_WHITE);
Marcelocostanzo 3:9229fd269ed0 132
Marcelocostanzo 3:9229fd269ed0 133 flag_init = 1;
Marcelocostanzo 3:9229fd269ed0 134
Marcelocostanzo 3:9229fd269ed0 135 myservo = OFF;
Marcelocostanzo 3:9229fd269ed0 136 while(1)
Marcelocostanzo 3:9229fd269ed0 137 {
Marcelocostanzo 3:9229fd269ed0 138 //---------------------MENU PRINCIPAL---------------------------------------
Marcelocostanzo 3:9229fd269ed0 139 if(flag_init == 1)
Marcelocostanzo 3:9229fd269ed0 140 {
Marcelocostanzo 3:9229fd269ed0 141 pc.printf("\nOla, escolha uma opcao abaixo:");
Marcelocostanzo 3:9229fd269ed0 142 pc.printf("\nA. Selecionar fonte");
Marcelocostanzo 3:9229fd269ed0 143 pc.printf("\nB. Limpar o Epaper");
Marcelocostanzo 3:9229fd269ed0 144 pc.printf("\nC. Escreve texto no Epaper");
Marcelocostanzo 3:9229fd269ed0 145 pc.printf("\nD. Para usar o brushless");
Marcelocostanzo 3:9229fd269ed0 146 pc.printf("\nE. Para reiniciar\n\n");
Marcelocostanzo 3:9229fd269ed0 147 flag_init = 0;
Marcelocostanzo 3:9229fd269ed0 148 }//FIM DO MENU PRINCIPAL
Marcelocostanzo 3:9229fd269ed0 149
Marcelocostanzo 3:9229fd269ed0 150 c = pc.getc();
Marcelocostanzo 3:9229fd269ed0 151
Marcelocostanzo 3:9229fd269ed0 152 //--------------------MENU DE FONTES-----------------------------------------
Marcelocostanzo 3:9229fd269ed0 153 if(c == 'A')
Marcelocostanzo 3:9229fd269ed0 154 {
Marcelocostanzo 3:9229fd269ed0 155 pc.printf("\n1. para a fonte pequena");
Marcelocostanzo 3:9229fd269ed0 156 pc.printf("\n2. para a fonte media");
Marcelocostanzo 3:9229fd269ed0 157 pc.printf("\n3. para a fonte grande");
Marcelocostanzo 3:9229fd269ed0 158 c = pc.getc();
Marcelocostanzo 3:9229fd269ed0 159
Marcelocostanzo 3:9229fd269ed0 160 //FONTE PEQUENA
Marcelocostanzo 3:9229fd269ed0 161 if(c == '1')
Marcelocostanzo 3:9229fd269ed0 162 {
Marcelocostanzo 3:9229fd269ed0 163 epd.SetFont(&Font8);
Marcelocostanzo 3:9229fd269ed0 164 pc.printf("\nFonte pequena selecionada");
Marcelocostanzo 3:9229fd269ed0 165 c = 0x00;
Marcelocostanzo 3:9229fd269ed0 166 }
Marcelocostanzo 3:9229fd269ed0 167
Marcelocostanzo 3:9229fd269ed0 168 //FONTE MEDIA
Marcelocostanzo 3:9229fd269ed0 169 if(c == '2')
Marcelocostanzo 3:9229fd269ed0 170 {
Marcelocostanzo 3:9229fd269ed0 171 epd.SetFont(&Font12);
Marcelocostanzo 3:9229fd269ed0 172 pc.printf("\nFonte media selecionada");
Marcelocostanzo 3:9229fd269ed0 173 c = 0x00;
Marcelocostanzo 3:9229fd269ed0 174 }
Marcelocostanzo 3:9229fd269ed0 175
Marcelocostanzo 3:9229fd269ed0 176 //FONTE GRANDE
Marcelocostanzo 3:9229fd269ed0 177 if(c == '3')
Marcelocostanzo 3:9229fd269ed0 178 {
Marcelocostanzo 3:9229fd269ed0 179 epd.SetFont(&Font16);
Marcelocostanzo 3:9229fd269ed0 180 pc.printf("\nFonte grande selecionada");
Marcelocostanzo 3:9229fd269ed0 181 c = 0x00;
Marcelocostanzo 3:9229fd269ed0 182 }
Marcelocostanzo 3:9229fd269ed0 183
Marcelocostanzo 3:9229fd269ed0 184 }//FIM DO MENU DE FONTES
Marcelocostanzo 3:9229fd269ed0 185
Marcelocostanzo 3:9229fd269ed0 186 //--------------LIMPAR EPAPER------------------------------------
Marcelocostanzo 3:9229fd269ed0 187 if(c == 'B')
Marcelocostanzo 3:9229fd269ed0 188 {
Marcelocostanzo 3:9229fd269ed0 189 epd.Clear(EPD_COLOR_WHITE);
Marcelocostanzo 3:9229fd269ed0 190 epd.RefreshDisplay();;
Marcelocostanzo 3:9229fd269ed0 191 pc.printf("\nEpaper limpo\n");
Marcelocostanzo 3:9229fd269ed0 192 c = 0x00;
Marcelocostanzo 3:9229fd269ed0 193 }//FIM DA ROTINA DE LIMPEZA DO EPAPER
Marcelocostanzo 3:9229fd269ed0 194
Marcelocostanzo 3:9229fd269ed0 195 //----------ROTINA PARA ESCREVER NO EPAPER------------------------
Marcelocostanzo 3:9229fd269ed0 196 if(c == 'C')
Marcelocostanzo 3:9229fd269ed0 197 {
Marcelocostanzo 4:38ce0cfb14e2 198 if(epd.GetFont() == &Font8) // Fonte numero 8 podemos ter 9 linhas no display!!!!!!!!!!!!!!
Marcelocostanzo 4:38ce0cfb14e2 199 {
Marcelocostanzo 4:38ce0cfb14e2 200 pc.printf("\nEscolha a linha, de 0 a 8:");
Marcelocostanzo 4:38ce0cfb14e2 201 c = pc.getc();
Marcelocostanzo 4:38ce0cfb14e2 202 switch (c)
Marcelocostanzo 4:38ce0cfb14e2 203 {
Marcelocostanzo 4:38ce0cfb14e2 204 case '0': l = 0;break;
Marcelocostanzo 4:38ce0cfb14e2 205 case '1': l = 1;break;
Marcelocostanzo 4:38ce0cfb14e2 206 case '2': l = 2;break;
Marcelocostanzo 4:38ce0cfb14e2 207 case '3': l = 3;break;
Marcelocostanzo 4:38ce0cfb14e2 208 case '4': l = 4;break;
Marcelocostanzo 4:38ce0cfb14e2 209 case '5': l = 5;break;
Marcelocostanzo 4:38ce0cfb14e2 210 case '6': l = 6;break;
Marcelocostanzo 4:38ce0cfb14e2 211 case '7': l = 7;break;
Marcelocostanzo 4:38ce0cfb14e2 212 case '8': l = 8;break;
Marcelocostanzo 4:38ce0cfb14e2 213 }
Marcelocostanzo 4:38ce0cfb14e2 214 }
Marcelocostanzo 3:9229fd269ed0 215 c = 0x00;
Marcelocostanzo 4:38ce0cfb14e2 216
Marcelocostanzo 4:38ce0cfb14e2 217 if(epd.GetFont() == &Font12) // Fonte numero 12 podemos ter 6 linhas no display!!!!!!!!!!!!!!
Marcelocostanzo 4:38ce0cfb14e2 218 {
Marcelocostanzo 4:38ce0cfb14e2 219 pc.printf("\nEscolha a linha, de 0 a 5:");
Marcelocostanzo 4:38ce0cfb14e2 220 c = pc.getc();
Marcelocostanzo 4:38ce0cfb14e2 221 switch (c)
Marcelocostanzo 4:38ce0cfb14e2 222 {
Marcelocostanzo 4:38ce0cfb14e2 223 case '0': l = 0;break;
Marcelocostanzo 4:38ce0cfb14e2 224 case '1': l = 1;break;
Marcelocostanzo 4:38ce0cfb14e2 225 case '2': l = 2;break;
Marcelocostanzo 4:38ce0cfb14e2 226 case '3': l = 3;break;
Marcelocostanzo 4:38ce0cfb14e2 227 case '4': l = 4;break;
Marcelocostanzo 4:38ce0cfb14e2 228 case '5': l = 5;break;
Marcelocostanzo 4:38ce0cfb14e2 229 }
Marcelocostanzo 4:38ce0cfb14e2 230 }
Marcelocostanzo 4:38ce0cfb14e2 231 c = 0x00;
Marcelocostanzo 4:38ce0cfb14e2 232
Marcelocostanzo 4:38ce0cfb14e2 233 if(epd.GetFont() == &Font16) // Fonte numero 16 podemos ter 4 linhas no display!!!!!!!!!!!!!!
Marcelocostanzo 4:38ce0cfb14e2 234 {
Marcelocostanzo 4:38ce0cfb14e2 235 pc.printf("\nEscolha a linha, de 0 a 3:");
Marcelocostanzo 4:38ce0cfb14e2 236 c = pc.getc();
Marcelocostanzo 4:38ce0cfb14e2 237 switch (c)
Marcelocostanzo 4:38ce0cfb14e2 238 {
Marcelocostanzo 4:38ce0cfb14e2 239 case '0': l = 0;break;
Marcelocostanzo 4:38ce0cfb14e2 240 case '1': l = 1;break;
Marcelocostanzo 4:38ce0cfb14e2 241 case '2': l = 2;break;
Marcelocostanzo 4:38ce0cfb14e2 242 case '3': l = 3;break;
Marcelocostanzo 4:38ce0cfb14e2 243 }
Marcelocostanzo 4:38ce0cfb14e2 244 }
Marcelocostanzo 4:38ce0cfb14e2 245 c = 0x00;
Marcelocostanzo 4:38ce0cfb14e2 246
Marcelocostanzo 4:38ce0cfb14e2 247 pc.printf("\nEntre com seu texto (com line feed - LF):");
Marcelocostanzo 4:38ce0cfb14e2 248
Marcelocostanzo 3:9229fd269ed0 249 do
Marcelocostanzo 3:9229fd269ed0 250 {
Marcelocostanzo 3:9229fd269ed0 251 c = pc.getc();
Marcelocostanzo 3:9229fd269ed0 252 s[i] = c;
Marcelocostanzo 3:9229fd269ed0 253 ++i;
Marcelocostanzo 3:9229fd269ed0 254 }
Marcelocostanzo 3:9229fd269ed0 255 while(c!='\n'); //entra em loop, coletando os caracteres até achar o \n, e então sai do loop
Marcelocostanzo 3:9229fd269ed0 256
Marcelocostanzo 3:9229fd269ed0 257 s[i-1] = '\0'; //elimina o caracter terminador de strings
Marcelocostanzo 3:9229fd269ed0 258 pc.printf("%s", s);
Marcelocostanzo 4:38ce0cfb14e2 259 epd.DisplayStringAtLine(l, (uint8_t*)s, CENTER_MODE);
Marcelocostanzo 3:9229fd269ed0 260 epd.RefreshDisplay();
Marcelocostanzo 3:9229fd269ed0 261 i=0;
Marcelocostanzo 3:9229fd269ed0 262
Marcelocostanzo 3:9229fd269ed0 263 }//FIM DA ROTINA PARA ESCREVER NO EPAPER
Marcelocostanzo 3:9229fd269ed0 264
Marcelocostanzo 3:9229fd269ed0 265 //----------ROTINA PARA CONTROLAR O MOTOR BRUSHLESS- PULSOS PPM----------------
Marcelocostanzo 3:9229fd269ed0 266 if(c == 'D')
Marcelocostanzo 3:9229fd269ed0 267 {
Marcelocostanzo 3:9229fd269ed0 268 pc.printf("\nP para parar");
Marcelocostanzo 3:9229fd269ed0 269 while(1)
Marcelocostanzo 3:9229fd269ed0 270 {
Marcelocostanzo 3:9229fd269ed0 271 k = CONTROL;
Marcelocostanzo 3:9229fd269ed0 272 p =_scale.from(k); //converte o valor do ADC (0.0 - 1.0) para valor compativel do PPM (1 - 2 mS)
Marcelocostanzo 3:9229fd269ed0 273 myservo = p;
Marcelocostanzo 3:9229fd269ed0 274 pc.printf("control %f\n\r",p);
Marcelocostanzo 3:9229fd269ed0 275 wait(0.2);
Marcelocostanzo 3:9229fd269ed0 276 if(pc.readable())
Marcelocostanzo 3:9229fd269ed0 277 {
Marcelocostanzo 3:9229fd269ed0 278 c = pc.getc();
Marcelocostanzo 3:9229fd269ed0 279 }
Marcelocostanzo 3:9229fd269ed0 280 if(c == 'P')
Marcelocostanzo 3:9229fd269ed0 281 {
Marcelocostanzo 3:9229fd269ed0 282 break;
Marcelocostanzo 3:9229fd269ed0 283 }
Marcelocostanzo 3:9229fd269ed0 284 if(button == 1)
Marcelocostanzo 3:9229fd269ed0 285 {
Marcelocostanzo 3:9229fd269ed0 286 wait(0.1); //Debounce
Marcelocostanzo 3:9229fd269ed0 287 if(button == 1)
Marcelocostanzo 3:9229fd269ed0 288 {
Marcelocostanzo 3:9229fd269ed0 289 break;
Marcelocostanzo 3:9229fd269ed0 290 }
Marcelocostanzo 3:9229fd269ed0 291 }
Marcelocostanzo 3:9229fd269ed0 292 }
Marcelocostanzo 3:9229fd269ed0 293 myservo = OFF;
Marcelocostanzo 3:9229fd269ed0 294 pc.printf("\nSaindo da funcao brushless");
Marcelocostanzo 3:9229fd269ed0 295 }//FIM DA ROTINA DO MOTOR BRUSHLESS
Marcelocostanzo 3:9229fd269ed0 296
Marcelocostanzo 3:9229fd269ed0 297 //-------ROTINA PARA EXIBIR NOVAMENTE O MENU PRINCIPAL-------------
Marcelocostanzo 3:9229fd269ed0 298 if(c == 'E')
Marcelocostanzo 3:9229fd269ed0 299 flag_init = 1;
Marcelocostanzo 3:9229fd269ed0 300
Marcelocostanzo 3:9229fd269ed0 301 }//FIM DA WHILE
Marcelocostanzo 3:9229fd269ed0 302 }//FIM DO PROGRAMA