Joaquín López
/
TP1_PUNTO2
Punto 2 del TP1: AMI
main.cpp@1:4ca7086e337b, 2018-05-31 (annotated)
- Committer:
- Joacolopez22
- Date:
- Thu May 31 18:37:27 2018 +0000
- Revision:
- 1:4ca7086e337b
- Parent:
- 0:559e1fcef2f4
Punto 2 del TP1: AMI;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Joacolopez22 | 0:559e1fcef2f4 | 1 | #include "mbed.h" |
Joacolopez22 | 0:559e1fcef2f4 | 2 | |
Joacolopez22 | 1:4ca7086e337b | 3 | // PINOUT // |
Joacolopez22 | 0:559e1fcef2f4 | 4 | AnalogOut salida(PTE30); |
Joacolopez22 | 0:559e1fcef2f4 | 5 | DigitalOut IN (PTC0); |
Joacolopez22 | 0:559e1fcef2f4 | 6 | Ticker temporizador; |
Joacolopez22 | 0:559e1fcef2f4 | 7 | |
Joacolopez22 | 1:4ca7086e337b | 8 | // ENUMS // |
Joacolopez22 | 0:559e1fcef2f4 | 9 | enum {PRE_UNO_POSITIVO, UNO_POSITIVO, PRE_UNO_NEGATIVO, UNO_NEGATIVO}; |
Joacolopez22 | 0:559e1fcef2f4 | 10 | |
Joacolopez22 | 1:4ca7086e337b | 11 | // PROTOCOLOS DE FUNCIÓN // |
Joacolopez22 | 1:4ca7086e337b | 12 | void AMI_Cod(int a); |
Joacolopez22 | 0:559e1fcef2f4 | 13 | void timer (void); |
Joacolopez22 | 0:559e1fcef2f4 | 14 | |
Joacolopez22 | 1:4ca7086e337b | 15 | // VARIABLES // |
Joacolopez22 | 0:559e1fcef2f4 | 16 | int entrada[16]= {0,1,0,1,1,0,1,0,1,1,1,0,1,0,0,1}; |
Joacolopez22 | 1:4ca7086e337b | 17 | int AMI_estado = PRE_UNO_POSITIVO; |
Joacolopez22 | 0:559e1fcef2f4 | 18 | int n=0; |
Joacolopez22 | 0:559e1fcef2f4 | 19 | int timeout = 0; |
Joacolopez22 | 0:559e1fcef2f4 | 20 | |
Joacolopez22 | 1:4ca7086e337b | 21 | // MAIN // |
Joacolopez22 | 0:559e1fcef2f4 | 22 | int main() |
Joacolopez22 | 0:559e1fcef2f4 | 23 | { |
Joacolopez22 | 0:559e1fcef2f4 | 24 | temporizador.attach(&timer,0.001); |
Joacolopez22 | 0:559e1fcef2f4 | 25 | salida = 0.5; |
Joacolopez22 | 0:559e1fcef2f4 | 26 | |
Joacolopez22 | 0:559e1fcef2f4 | 27 | while(1) { |
Joacolopez22 | 1:4ca7086e337b | 28 | AMI_Cod(entrada[n]); |
Joacolopez22 | 0:559e1fcef2f4 | 29 | } |
Joacolopez22 | 0:559e1fcef2f4 | 30 | } |
Joacolopez22 | 0:559e1fcef2f4 | 31 | |
Joacolopez22 | 1:4ca7086e337b | 32 | // FUNCIONES // |
Joacolopez22 | 1:4ca7086e337b | 33 | void AMI_Cod(int a) |
Joacolopez22 | 0:559e1fcef2f4 | 34 | { |
Joacolopez22 | 1:4ca7086e337b | 35 | if (n == 17) { |
Joacolopez22 | 0:559e1fcef2f4 | 36 | salida = 0.5; |
Joacolopez22 | 0:559e1fcef2f4 | 37 | return; |
Joacolopez22 | 0:559e1fcef2f4 | 38 | } |
Joacolopez22 | 0:559e1fcef2f4 | 39 | if(timeout > 0) { |
Joacolopez22 | 0:559e1fcef2f4 | 40 | return; |
Joacolopez22 | 0:559e1fcef2f4 | 41 | } |
Joacolopez22 | 0:559e1fcef2f4 | 42 | IN = entrada[n]; |
Joacolopez22 | 0:559e1fcef2f4 | 43 | |
Joacolopez22 | 1:4ca7086e337b | 44 | switch(AMI_estado) { |
Joacolopez22 | 0:559e1fcef2f4 | 45 | default: |
Joacolopez22 | 0:559e1fcef2f4 | 46 | case PRE_UNO_POSITIVO: |
Joacolopez22 | 0:559e1fcef2f4 | 47 | salida = 0.5; |
Joacolopez22 | 0:559e1fcef2f4 | 48 | if(a == 1) { |
Joacolopez22 | 1:4ca7086e337b | 49 | AMI_estado = UNO_POSITIVO; |
Joacolopez22 | 0:559e1fcef2f4 | 50 | } |
Joacolopez22 | 0:559e1fcef2f4 | 51 | break; |
Joacolopez22 | 0:559e1fcef2f4 | 52 | case UNO_POSITIVO: |
Joacolopez22 | 0:559e1fcef2f4 | 53 | salida = 1; |
Joacolopez22 | 0:559e1fcef2f4 | 54 | if (a == 1) { |
Joacolopez22 | 1:4ca7086e337b | 55 | AMI_estado = UNO_NEGATIVO; |
Joacolopez22 | 0:559e1fcef2f4 | 56 | } |
Joacolopez22 | 0:559e1fcef2f4 | 57 | if (a == 0) { |
Joacolopez22 | 1:4ca7086e337b | 58 | AMI_estado = PRE_UNO_NEGATIVO; |
Joacolopez22 | 0:559e1fcef2f4 | 59 | } |
Joacolopez22 | 0:559e1fcef2f4 | 60 | break; |
Joacolopez22 | 0:559e1fcef2f4 | 61 | case UNO_NEGATIVO: |
Joacolopez22 | 0:559e1fcef2f4 | 62 | salida = 0; |
Joacolopez22 | 0:559e1fcef2f4 | 63 | if (a == 1) { |
Joacolopez22 | 1:4ca7086e337b | 64 | AMI_estado = UNO_POSITIVO; |
Joacolopez22 | 0:559e1fcef2f4 | 65 | } |
Joacolopez22 | 0:559e1fcef2f4 | 66 | if (a == 0) { |
Joacolopez22 | 1:4ca7086e337b | 67 | AMI_estado = PRE_UNO_POSITIVO; |
Joacolopez22 | 0:559e1fcef2f4 | 68 | } |
Joacolopez22 | 0:559e1fcef2f4 | 69 | break; |
Joacolopez22 | 0:559e1fcef2f4 | 70 | case PRE_UNO_NEGATIVO: |
Joacolopez22 | 0:559e1fcef2f4 | 71 | salida = 0.5; |
Joacolopez22 | 0:559e1fcef2f4 | 72 | if (a == 1) { |
Joacolopez22 | 1:4ca7086e337b | 73 | AMI_estado = UNO_NEGATIVO; |
Joacolopez22 | 0:559e1fcef2f4 | 74 | } |
Joacolopez22 | 0:559e1fcef2f4 | 75 | break; |
Joacolopez22 | 0:559e1fcef2f4 | 76 | } |
Joacolopez22 | 0:559e1fcef2f4 | 77 | timeout = 100; |
Joacolopez22 | 0:559e1fcef2f4 | 78 | n++; |
Joacolopez22 | 0:559e1fcef2f4 | 79 | } |
Joacolopez22 | 0:559e1fcef2f4 | 80 | |
Joacolopez22 | 0:559e1fcef2f4 | 81 | void timer (void) |
Joacolopez22 | 0:559e1fcef2f4 | 82 | { |
Joacolopez22 | 0:559e1fcef2f4 | 83 | if (timeout >0) |
Joacolopez22 | 0:559e1fcef2f4 | 84 | timeout--; |
Joacolopez22 | 0:559e1fcef2f4 | 85 | } |
Joacolopez22 | 0:559e1fcef2f4 | 86 |