luiz fischer / Mbed 2 deprecated T6_CD_parte2

Dependencies:   mbed

Committer:
nlfischer
Date:
Fri Jan 05 17:59:10 2018 +0000
Revision:
0:dd4331d7abaf
Luiz Fischer

Who changed what in which revision?

UserRevisionLine numberNew 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 }