Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:dd4331d7abaf, 2018-01-05 (annotated)
- Committer:
- nlfischer
- Date:
- Fri Jan 05 17:59:10 2018 +0000
- Revision:
- 0:dd4331d7abaf
Luiz Fischer
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| nlfischer | 0:dd4331d7abaf | 1 | #include "mbed.h" |
| nlfischer | 0:dd4331d7abaf | 2 | |
| nlfischer | 0:dd4331d7abaf | 3 | Ticker aciona_interrupcao; |
| nlfischer | 0:dd4331d7abaf | 4 | |
| nlfischer | 0:dd4331d7abaf | 5 | Serial pc(SERIAL_TX, SERIAL_RX, 115200); |
| nlfischer | 0:dd4331d7abaf | 6 | |
| nlfischer | 0:dd4331d7abaf | 7 | AnalogIn tensao_entrada(A4); |
| nlfischer | 0:dd4331d7abaf | 8 | AnalogIn tensao_saida(A5); |
| nlfischer | 0:dd4331d7abaf | 9 | |
| nlfischer | 0:dd4331d7abaf | 10 | PwmOut pwm(D5); |
| nlfischer | 0:dd4331d7abaf | 11 | |
| nlfischer | 0:dd4331d7abaf | 12 | DigitalOut carga(PB_5); |
| nlfischer | 0:dd4331d7abaf | 13 | |
| nlfischer | 0:dd4331d7abaf | 14 | static int interrupt = 1, k=0, periodo_pwm = 1, tam = 500; |
| nlfischer | 0:dd4331d7abaf | 15 | float tempo = 0.001; |
| nlfischer | 0:dd4331d7abaf | 16 | |
| nlfischer | 0:dd4331d7abaf | 17 | |
| nlfischer | 0:dd4331d7abaf | 18 | float le_tensao_vout(){ |
| nlfischer | 0:dd4331d7abaf | 19 | return tensao_saida.read()*3.3; |
| nlfischer | 0:dd4331d7abaf | 20 | } |
| nlfischer | 0:dd4331d7abaf | 21 | |
| nlfischer | 0:dd4331d7abaf | 22 | |
| nlfischer | 0:dd4331d7abaf | 23 | void imprime_dados(float u, float vout){ |
| nlfischer | 0:dd4331d7abaf | 24 | pc.printf("\n%d", k); |
| nlfischer | 0:dd4331d7abaf | 25 | pc.printf(" "); |
| nlfischer | 0:dd4331d7abaf | 26 | pc.printf("%f", u); |
| nlfischer | 0:dd4331d7abaf | 27 | pc.printf(" "); |
| nlfischer | 0:dd4331d7abaf | 28 | pc.printf("%f", vout); |
| nlfischer | 0:dd4331d7abaf | 29 | } |
| nlfischer | 0:dd4331d7abaf | 30 | |
| nlfischer | 0:dd4331d7abaf | 31 | void interrupcao(){ |
| nlfischer | 0:dd4331d7abaf | 32 | interrupt = 1; |
| nlfischer | 0:dd4331d7abaf | 33 | k=k+1; |
| nlfischer | 0:dd4331d7abaf | 34 | } |
| nlfischer | 0:dd4331d7abaf | 35 | |
| nlfischer | 0:dd4331d7abaf | 36 | void fim(){ |
| nlfischer | 0:dd4331d7abaf | 37 | pc.printf("];"); |
| nlfischer | 0:dd4331d7abaf | 38 | pc.printf("\nfigure(1)"); |
| nlfischer | 0:dd4331d7abaf | 39 | pc.printf("\nsubplot(2,1,1)"); |
| nlfischer | 0:dd4331d7abaf | 40 | pc.printf("\nstairs(dados(:,3),'k')"); |
| nlfischer | 0:dd4331d7abaf | 41 | pc.printf("\ngrid on"); |
| nlfischer | 0:dd4331d7abaf | 42 | pc.printf("\nylabel('saida')"); |
| nlfischer | 0:dd4331d7abaf | 43 | pc.printf("\nsubplot(2,1,2)"); |
| nlfischer | 0:dd4331d7abaf | 44 | pc.printf("\nstairs(dados(:,2))"); |
| nlfischer | 0:dd4331d7abaf | 45 | pc.printf("\ngrid on"); |
| nlfischer | 0:dd4331d7abaf | 46 | pc.printf("\nsave dados_degrau dados"); |
| nlfischer | 0:dd4331d7abaf | 47 | pc.printf("\nylabel('entrada')\n\n"); |
| nlfischer | 0:dd4331d7abaf | 48 | |
| nlfischer | 0:dd4331d7abaf | 49 | pwm.pulsewidth_us(1); |
| nlfischer | 0:dd4331d7abaf | 50 | |
| nlfischer | 0:dd4331d7abaf | 51 | while(1){ |
| nlfischer | 0:dd4331d7abaf | 52 | |
| nlfischer | 0:dd4331d7abaf | 53 | } |
| nlfischer | 0:dd4331d7abaf | 54 | } |
| nlfischer | 0:dd4331d7abaf | 55 | |
| nlfischer | 0:dd4331d7abaf | 56 | |
| nlfischer | 0:dd4331d7abaf | 57 | int main() { |
| nlfischer | 0:dd4331d7abaf | 58 | int i = 0; |
| nlfischer | 0:dd4331d7abaf | 59 | float vin=0.0,vout=0.0, u=0.0; |
| nlfischer | 0:dd4331d7abaf | 60 | |
| nlfischer | 0:dd4331d7abaf | 61 | |
| nlfischer | 0:dd4331d7abaf | 62 | aciona_interrupcao.attach(&interrupcao, 0.03); |
| nlfischer | 0:dd4331d7abaf | 63 | |
| nlfischer | 0:dd4331d7abaf | 64 | pwm.period_ms(periodo_pwm); |
| nlfischer | 0:dd4331d7abaf | 65 | |
| nlfischer | 0:dd4331d7abaf | 66 | pc.printf("%% Inicio do programa"); |
| nlfischer | 0:dd4331d7abaf | 67 | pc.printf("\nclear all; clc;"); |
| nlfischer | 0:dd4331d7abaf | 68 | pc.printf("\ndados = ["); |
| nlfischer | 0:dd4331d7abaf | 69 | |
| nlfischer | 0:dd4331d7abaf | 70 | while(1){ |
| nlfischer | 0:dd4331d7abaf | 71 | |
| nlfischer | 0:dd4331d7abaf | 72 | if(interrupt) { |
| nlfischer | 0:dd4331d7abaf | 73 | |
| nlfischer | 0:dd4331d7abaf | 74 | if(k>50){ |
| nlfischer | 0:dd4331d7abaf | 75 | u = 3.3; |
| nlfischer | 0:dd4331d7abaf | 76 | pwm.pulsewidth_us(1000); |
| nlfischer | 0:dd4331d7abaf | 77 | } |
| nlfischer | 0:dd4331d7abaf | 78 | imprime_dados(u, le_tensao_vout()); |
| nlfischer | 0:dd4331d7abaf | 79 | |
| nlfischer | 0:dd4331d7abaf | 80 | |
| nlfischer | 0:dd4331d7abaf | 81 | interrupt = 0; |
| nlfischer | 0:dd4331d7abaf | 82 | |
| nlfischer | 0:dd4331d7abaf | 83 | if(k==tam-1) fim(); |
| nlfischer | 0:dd4331d7abaf | 84 | |
| nlfischer | 0:dd4331d7abaf | 85 | |
| nlfischer | 0:dd4331d7abaf | 86 | } |
| nlfischer | 0:dd4331d7abaf | 87 | |
| nlfischer | 0:dd4331d7abaf | 88 | |
| nlfischer | 0:dd4331d7abaf | 89 | } |
| nlfischer | 0:dd4331d7abaf | 90 | } |