![](/media/cache/group/Display_Nokia_Insper_v01.jpg.50x50_q85.jpg)
funcionando
Dependencies: EPD_GDE021A1 mbed reScale
Fork of DISCO-L053C8_ePD_demo by
main.cpp@3:9229fd269ed0, 2018-08-31 (annotated)
- Committer:
- Marcelocostanzo
- Date:
- Fri Aug 31 13:36:32 2018 +0000
- Revision:
- 3:9229fd269ed0
- Parent:
- 0:e5732175b08b
- Child:
- 4:38ce0cfb14e2
Final, Funcionando
Who changed what in which revision?
User | Revision | Line number | New 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 | 3:9229fd269ed0 | 103 | char c; |
Marcelocostanzo | 3:9229fd269ed0 | 104 | char s[100]; |
Marcelocostanzo | 3:9229fd269ed0 | 105 | bool flag_init = 0; |
bcostm | 0:e5732175b08b | 106 | int main() |
bcostm | 0:e5732175b08b | 107 | { |
Marcelocostanzo | 3:9229fd269ed0 | 108 | //-----As linhas abaixo configuram e ligam o ESC-------- |
Marcelocostanzo | 3:9229fd269ed0 | 109 | myservo.period(0.02f); //configura o periodo para o padrão PPM |
Marcelocostanzo | 3:9229fd269ed0 | 110 | myservo = 0.1; //pulso mais longo 2mS |
Marcelocostanzo | 3:9229fd269ed0 | 111 | wait(1); |
Marcelocostanzo | 3:9229fd269ed0 | 112 | myservo = OFF; //pulso mais curto 1mS |
Marcelocostanzo | 3:9229fd269ed0 | 113 | wait(1); |
Marcelocostanzo | 3:9229fd269ed0 | 114 | //fim das configs do ESC |
Marcelocostanzo | 3:9229fd269ed0 | 115 | |
Marcelocostanzo | 3:9229fd269ed0 | 116 | flipper.attach(&flip, 0.1);//interrupção para piscar o led, debug para saber se o uC travou |
bcostm | 0:e5732175b08b | 117 | |
Marcelocostanzo | 3:9229fd269ed0 | 118 | |
Marcelocostanzo | 3:9229fd269ed0 | 119 | //mensagens de boas vindas |
bcostm | 0:e5732175b08b | 120 | epd.Clear(EPD_COLOR_WHITE); |
bcostm | 0:e5732175b08b | 121 | epd.DisplayStringAtLine(5, (uint8_t*)"MBED", CENTER_MODE); |
bcostm | 0:e5732175b08b | 122 | epd.DisplayStringAtLine(3, (uint8_t*)"Epaper display", LEFT_MODE); |
bcostm | 0:e5732175b08b | 123 | epd.DisplayStringAtLine(2, (uint8_t*)"demo", LEFT_MODE); |
bcostm | 0:e5732175b08b | 124 | epd.DrawImage(130, 0, 48, 26, Battery_img); |
bcostm | 0:e5732175b08b | 125 | epd.DrawRect(50, 4, 60, 4); |
bcostm | 0:e5732175b08b | 126 | epd.RefreshDisplay(); |
Marcelocostanzo | 3:9229fd269ed0 | 127 | wait(1); |
Marcelocostanzo | 3:9229fd269ed0 | 128 | epd.Clear(EPD_COLOR_WHITE); |
Marcelocostanzo | 3:9229fd269ed0 | 129 | epd.RefreshDisplay(); |
Marcelocostanzo | 3:9229fd269ed0 | 130 | epd.Clear(EPD_COLOR_WHITE); |
Marcelocostanzo | 3:9229fd269ed0 | 131 | |
Marcelocostanzo | 3:9229fd269ed0 | 132 | flag_init = 1; |
Marcelocostanzo | 3:9229fd269ed0 | 133 | |
Marcelocostanzo | 3:9229fd269ed0 | 134 | myservo = OFF; |
Marcelocostanzo | 3:9229fd269ed0 | 135 | while(1) |
Marcelocostanzo | 3:9229fd269ed0 | 136 | { |
Marcelocostanzo | 3:9229fd269ed0 | 137 | //---------------------MENU PRINCIPAL--------------------------------------- |
Marcelocostanzo | 3:9229fd269ed0 | 138 | if(flag_init == 1) |
Marcelocostanzo | 3:9229fd269ed0 | 139 | { |
Marcelocostanzo | 3:9229fd269ed0 | 140 | pc.printf("\nOla, escolha uma opcao abaixo:"); |
Marcelocostanzo | 3:9229fd269ed0 | 141 | pc.printf("\nA. Selecionar fonte"); |
Marcelocostanzo | 3:9229fd269ed0 | 142 | pc.printf("\nB. Limpar o Epaper"); |
Marcelocostanzo | 3:9229fd269ed0 | 143 | pc.printf("\nC. Escreve texto no Epaper"); |
Marcelocostanzo | 3:9229fd269ed0 | 144 | pc.printf("\nD. Para usar o brushless"); |
Marcelocostanzo | 3:9229fd269ed0 | 145 | pc.printf("\nE. Para reiniciar\n\n"); |
Marcelocostanzo | 3:9229fd269ed0 | 146 | flag_init = 0; |
Marcelocostanzo | 3:9229fd269ed0 | 147 | }//FIM DO MENU PRINCIPAL |
Marcelocostanzo | 3:9229fd269ed0 | 148 | |
Marcelocostanzo | 3:9229fd269ed0 | 149 | c = pc.getc(); |
Marcelocostanzo | 3:9229fd269ed0 | 150 | |
Marcelocostanzo | 3:9229fd269ed0 | 151 | //--------------------MENU DE FONTES----------------------------------------- |
Marcelocostanzo | 3:9229fd269ed0 | 152 | if(c == 'A') |
Marcelocostanzo | 3:9229fd269ed0 | 153 | { |
Marcelocostanzo | 3:9229fd269ed0 | 154 | pc.printf("\n1. para a fonte pequena"); |
Marcelocostanzo | 3:9229fd269ed0 | 155 | pc.printf("\n2. para a fonte media"); |
Marcelocostanzo | 3:9229fd269ed0 | 156 | pc.printf("\n3. para a fonte grande"); |
Marcelocostanzo | 3:9229fd269ed0 | 157 | c = pc.getc(); |
Marcelocostanzo | 3:9229fd269ed0 | 158 | |
Marcelocostanzo | 3:9229fd269ed0 | 159 | //FONTE PEQUENA |
Marcelocostanzo | 3:9229fd269ed0 | 160 | if(c == '1') |
Marcelocostanzo | 3:9229fd269ed0 | 161 | { |
Marcelocostanzo | 3:9229fd269ed0 | 162 | epd.SetFont(&Font8); |
Marcelocostanzo | 3:9229fd269ed0 | 163 | pc.printf("\nFonte pequena selecionada"); |
Marcelocostanzo | 3:9229fd269ed0 | 164 | c = 0x00; |
Marcelocostanzo | 3:9229fd269ed0 | 165 | } |
Marcelocostanzo | 3:9229fd269ed0 | 166 | |
Marcelocostanzo | 3:9229fd269ed0 | 167 | //FONTE MEDIA |
Marcelocostanzo | 3:9229fd269ed0 | 168 | if(c == '2') |
Marcelocostanzo | 3:9229fd269ed0 | 169 | { |
Marcelocostanzo | 3:9229fd269ed0 | 170 | epd.SetFont(&Font12); |
Marcelocostanzo | 3:9229fd269ed0 | 171 | pc.printf("\nFonte media selecionada"); |
Marcelocostanzo | 3:9229fd269ed0 | 172 | c = 0x00; |
Marcelocostanzo | 3:9229fd269ed0 | 173 | } |
Marcelocostanzo | 3:9229fd269ed0 | 174 | |
Marcelocostanzo | 3:9229fd269ed0 | 175 | //FONTE GRANDE |
Marcelocostanzo | 3:9229fd269ed0 | 176 | if(c == '3') |
Marcelocostanzo | 3:9229fd269ed0 | 177 | { |
Marcelocostanzo | 3:9229fd269ed0 | 178 | epd.SetFont(&Font16); |
Marcelocostanzo | 3:9229fd269ed0 | 179 | pc.printf("\nFonte grande selecionada"); |
Marcelocostanzo | 3:9229fd269ed0 | 180 | c = 0x00; |
Marcelocostanzo | 3:9229fd269ed0 | 181 | } |
Marcelocostanzo | 3:9229fd269ed0 | 182 | |
Marcelocostanzo | 3:9229fd269ed0 | 183 | }//FIM DO MENU DE FONTES |
Marcelocostanzo | 3:9229fd269ed0 | 184 | |
Marcelocostanzo | 3:9229fd269ed0 | 185 | //--------------LIMPAR EPAPER------------------------------------ |
Marcelocostanzo | 3:9229fd269ed0 | 186 | if(c == 'B') |
Marcelocostanzo | 3:9229fd269ed0 | 187 | { |
Marcelocostanzo | 3:9229fd269ed0 | 188 | epd.Clear(EPD_COLOR_WHITE); |
Marcelocostanzo | 3:9229fd269ed0 | 189 | epd.RefreshDisplay();; |
Marcelocostanzo | 3:9229fd269ed0 | 190 | pc.printf("\nEpaper limpo\n"); |
Marcelocostanzo | 3:9229fd269ed0 | 191 | c = 0x00; |
Marcelocostanzo | 3:9229fd269ed0 | 192 | }//FIM DA ROTINA DE LIMPEZA DO EPAPER |
Marcelocostanzo | 3:9229fd269ed0 | 193 | |
Marcelocostanzo | 3:9229fd269ed0 | 194 | //----------ROTINA PARA ESCREVER NO EPAPER------------------------ |
Marcelocostanzo | 3:9229fd269ed0 | 195 | if(c == 'C') |
Marcelocostanzo | 3:9229fd269ed0 | 196 | { |
Marcelocostanzo | 3:9229fd269ed0 | 197 | c = 0x00; |
Marcelocostanzo | 3:9229fd269ed0 | 198 | pc.printf("Entre com seu texto (com line feed - LF):"); |
Marcelocostanzo | 3:9229fd269ed0 | 199 | //led2 = 1; |
Marcelocostanzo | 3:9229fd269ed0 | 200 | |
Marcelocostanzo | 3:9229fd269ed0 | 201 | do |
Marcelocostanzo | 3:9229fd269ed0 | 202 | { |
Marcelocostanzo | 3:9229fd269ed0 | 203 | c = pc.getc(); |
Marcelocostanzo | 3:9229fd269ed0 | 204 | s[i] = c; |
Marcelocostanzo | 3:9229fd269ed0 | 205 | ++i; |
Marcelocostanzo | 3:9229fd269ed0 | 206 | } |
Marcelocostanzo | 3:9229fd269ed0 | 207 | while(c!='\n'); //entra em loop, coletando os caracteres até achar o \n, e então sai do loop |
Marcelocostanzo | 3:9229fd269ed0 | 208 | |
Marcelocostanzo | 3:9229fd269ed0 | 209 | s[i-1] = '\0'; //elimina o caracter terminador de strings |
Marcelocostanzo | 3:9229fd269ed0 | 210 | pc.printf("%s", s); |
Marcelocostanzo | 3:9229fd269ed0 | 211 | epd.DisplayStringAtLine(5, (uint8_t*)s, CENTER_MODE); |
Marcelocostanzo | 3:9229fd269ed0 | 212 | epd.RefreshDisplay(); |
Marcelocostanzo | 3:9229fd269ed0 | 213 | i=0; |
Marcelocostanzo | 3:9229fd269ed0 | 214 | |
Marcelocostanzo | 3:9229fd269ed0 | 215 | }//FIM DA ROTINA PARA ESCREVER NO EPAPER |
Marcelocostanzo | 3:9229fd269ed0 | 216 | |
Marcelocostanzo | 3:9229fd269ed0 | 217 | //----------ROTINA PARA CONTROLAR O MOTOR BRUSHLESS- PULSOS PPM---------------- |
Marcelocostanzo | 3:9229fd269ed0 | 218 | if(c == 'D') |
Marcelocostanzo | 3:9229fd269ed0 | 219 | { |
Marcelocostanzo | 3:9229fd269ed0 | 220 | pc.printf("\nP para parar"); |
Marcelocostanzo | 3:9229fd269ed0 | 221 | while(1) |
Marcelocostanzo | 3:9229fd269ed0 | 222 | { |
Marcelocostanzo | 3:9229fd269ed0 | 223 | k = CONTROL; |
Marcelocostanzo | 3:9229fd269ed0 | 224 | p =_scale.from(k); //converte o valor do ADC (0.0 - 1.0) para valor compativel do PPM (1 - 2 mS) |
Marcelocostanzo | 3:9229fd269ed0 | 225 | myservo = p; |
Marcelocostanzo | 3:9229fd269ed0 | 226 | pc.printf("control %f\n\r",p); |
Marcelocostanzo | 3:9229fd269ed0 | 227 | wait(0.2); |
Marcelocostanzo | 3:9229fd269ed0 | 228 | if(pc.readable()) |
Marcelocostanzo | 3:9229fd269ed0 | 229 | { |
Marcelocostanzo | 3:9229fd269ed0 | 230 | c = pc.getc(); |
Marcelocostanzo | 3:9229fd269ed0 | 231 | } |
Marcelocostanzo | 3:9229fd269ed0 | 232 | if(c == 'P') |
Marcelocostanzo | 3:9229fd269ed0 | 233 | { |
Marcelocostanzo | 3:9229fd269ed0 | 234 | break; |
Marcelocostanzo | 3:9229fd269ed0 | 235 | } |
Marcelocostanzo | 3:9229fd269ed0 | 236 | if(button == 1) |
Marcelocostanzo | 3:9229fd269ed0 | 237 | { |
Marcelocostanzo | 3:9229fd269ed0 | 238 | wait(0.1); //Debounce |
Marcelocostanzo | 3:9229fd269ed0 | 239 | if(button == 1) |
Marcelocostanzo | 3:9229fd269ed0 | 240 | { |
Marcelocostanzo | 3:9229fd269ed0 | 241 | break; |
Marcelocostanzo | 3:9229fd269ed0 | 242 | } |
Marcelocostanzo | 3:9229fd269ed0 | 243 | } |
Marcelocostanzo | 3:9229fd269ed0 | 244 | } |
Marcelocostanzo | 3:9229fd269ed0 | 245 | myservo = OFF; |
Marcelocostanzo | 3:9229fd269ed0 | 246 | pc.printf("\nSaindo da funcao brushless"); |
Marcelocostanzo | 3:9229fd269ed0 | 247 | }//FIM DA ROTINA DO MOTOR BRUSHLESS |
Marcelocostanzo | 3:9229fd269ed0 | 248 | |
Marcelocostanzo | 3:9229fd269ed0 | 249 | //-------ROTINA PARA EXIBIR NOVAMENTE O MENU PRINCIPAL------------- |
Marcelocostanzo | 3:9229fd269ed0 | 250 | if(c == 'E') |
Marcelocostanzo | 3:9229fd269ed0 | 251 | flag_init = 1; |
Marcelocostanzo | 3:9229fd269ed0 | 252 | |
Marcelocostanzo | 3:9229fd269ed0 | 253 | }//FIM DA WHILE |
Marcelocostanzo | 3:9229fd269ed0 | 254 | }//FIM DO PROGRAMA |