Yosef Guevara Salamanca
/
ProyectoPimerCorte
Primer codigo
main.cpp@5:3f4a420fd9b1, 2018-09-09 (annotated)
- Committer:
- djinn77
- Date:
- Sun Sep 09 04:52:48 2018 +0000
- Revision:
- 5:3f4a420fd9b1
- Parent:
- 4:5b4114791035
Mejora ciclo de impresion de desplazamiento
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
djinn77 | 0:e82dd940ef80 | 1 | #include "mbed.h" |
djinn77 | 0:e82dd940ef80 | 2 | #include "max7219.h" |
djinn77 | 1:5819a7e4abf2 | 3 | //#define DEBUG 1 |
djinn77 | 1:5819a7e4abf2 | 4 | |
djinn77 | 1:5819a7e4abf2 | 5 | Serial pc(USBTX,USBRX); |
djinn77 | 1:5819a7e4abf2 | 6 | |
djinn77 | 0:e82dd940ef80 | 7 | |
djinn77 | 0:e82dd940ef80 | 8 | Max7219 deviceM(PB_15, PB_14, PB_13, PB_12); |
djinn77 | 3:e3ddaa35784e | 9 | int matriz[8]={0}; |
djinn77 | 0:e82dd940ef80 | 10 | |
djinn77 | 1:5819a7e4abf2 | 11 | void debuging(char*s,...){ |
djinn77 | 1:5819a7e4abf2 | 12 | |
djinn77 | 1:5819a7e4abf2 | 13 | #if DEBUG |
djinn77 | 1:5819a7e4abf2 | 14 | pc.printf(s); |
djinn77 | 1:5819a7e4abf2 | 15 | #endif |
djinn77 | 1:5819a7e4abf2 | 16 | |
djinn77 | 1:5819a7e4abf2 | 17 | } |
djinn77 | 1:5819a7e4abf2 | 18 | |
djinn77 | 1:5819a7e4abf2 | 19 | |
djinn77 | 0:e82dd940ef80 | 20 | void imprimir(){ |
djinn77 | 5:3f4a420fd9b1 | 21 | // Sele aplica corrmiento a las posiciones del vecteor para facilitar selecccion de la posicion. |
djinn77 | 5:3f4a420fd9b1 | 22 | |
djinn77 | 4:5b4114791035 | 23 | for(int i=0;i<=12;i++) |
djinn77 | 0:e82dd940ef80 | 24 | { |
djinn77 | 5:3f4a420fd9b1 | 25 | for (int j= 1; j<=8; j++){ |
djinn77 | 5:3f4a420fd9b1 | 26 | |
djinn77 | 5:3f4a420fd9b1 | 27 | deviceM.write_digit(1,j,matriz[j-1]>>i); |
djinn77 | 5:3f4a420fd9b1 | 28 | } |
djinn77 | 5:3f4a420fd9b1 | 29 | wait(1.0); |
djinn77 | 0:e82dd940ef80 | 30 | } |
djinn77 | 1:5819a7e4abf2 | 31 | |
djinn77 | 0:e82dd940ef80 | 32 | } |
djinn77 | 0:e82dd940ef80 | 33 | |
djinn77 | 0:e82dd940ef80 | 34 | int main() { |
djinn77 | 0:e82dd940ef80 | 35 | |
djinn77 | 0:e82dd940ef80 | 36 | max7219_configuration_t cfg = { |
djinn77 | 0:e82dd940ef80 | 37 | .device_number = 1, |
djinn77 | 0:e82dd940ef80 | 38 | .decode_mode = 0, |
djinn77 | 0:e82dd940ef80 | 39 | .intensity = Max7219::MAX7219_INTENSITY_8, |
djinn77 | 0:e82dd940ef80 | 40 | .scan_limit = Max7219::MAX7219_SCAN_8 |
djinn77 | 0:e82dd940ef80 | 41 | }; |
djinn77 | 0:e82dd940ef80 | 42 | |
djinn77 | 0:e82dd940ef80 | 43 | deviceM.init_device(cfg); |
djinn77 | 0:e82dd940ef80 | 44 | |
djinn77 | 0:e82dd940ef80 | 45 | deviceM.enable_device(1); |
djinn77 | 0:e82dd940ef80 | 46 | |
djinn77 | 0:e82dd940ef80 | 47 | deviceM.set_display_test(); |
djinn77 | 0:e82dd940ef80 | 48 | wait(1); |
djinn77 | 1:5819a7e4abf2 | 49 | deviceM.clear_display_test(); |
djinn77 | 0:e82dd940ef80 | 50 | wait(1); |
djinn77 | 0:e82dd940ef80 | 51 | |
djinn77 | 0:e82dd940ef80 | 52 | |
djinn77 | 0:e82dd940ef80 | 53 | while(1){ |
djinn77 | 0:e82dd940ef80 | 54 | |
djinn77 | 1:5819a7e4abf2 | 55 | pc.baud(38400); |
djinn77 | 4:5b4114791035 | 56 | char pos= 0; |
djinn77 | 4:5b4114791035 | 57 | char figura= 0; |
djinn77 | 4:5b4114791035 | 58 | char giro= 0; |
djinn77 | 2:557f7674d8db | 59 | debuging("\n Ingrese el posicion. "); |
djinn77 | 4:5b4114791035 | 60 | pos=pc.getc(); |
djinn77 | 2:557f7674d8db | 61 | debuging("\n Seleccione la Figura. "); |
djinn77 | 4:5b4114791035 | 62 | figura=pc.getc(); |
djinn77 | 2:557f7674d8db | 63 | debuging("\n Seleccione la rotacion. "); |
djinn77 | 4:5b4114791035 | 64 | giro=pc.getc(); |
djinn77 | 0:e82dd940ef80 | 65 | |
djinn77 | 0:e82dd940ef80 | 66 | |
djinn77 | 0:e82dd940ef80 | 67 | switch(figura){ |
djinn77 | 0:e82dd940ef80 | 68 | case 1: |
djinn77 | 3:e3ddaa35784e | 69 | // Cuadrado |
djinn77 | 3:e3ddaa35784e | 70 | switch(giro){ |
djinn77 | 3:e3ddaa35784e | 71 | case 1: case 2: case 3: case 4: |
djinn77 | 4:5b4114791035 | 72 | matriz[pos]= 0b11000000000; |
djinn77 | 4:5b4114791035 | 73 | matriz[pos+1]=0b11000000000; |
djinn77 | 0:e82dd940ef80 | 74 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 75 | break; |
djinn77 | 3:e3ddaa35784e | 76 | } |
djinn77 | 3:e3ddaa35784e | 77 | break; |
djinn77 | 0:e82dd940ef80 | 78 | case 2: |
djinn77 | 0:e82dd940ef80 | 79 | //T |
djinn77 | 0:e82dd940ef80 | 80 | switch(giro){ |
djinn77 | 0:e82dd940ef80 | 81 | case 1: |
djinn77 | 4:5b4114791035 | 82 | matriz[pos]= 0b10000000000; |
djinn77 | 4:5b4114791035 | 83 | matriz[pos+1]=0b11000000000; |
djinn77 | 4:5b4114791035 | 84 | matriz[pos+2]=0b10000000000; |
djinn77 | 0:e82dd940ef80 | 85 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 86 | break; |
djinn77 | 0:e82dd940ef80 | 87 | case 2: |
djinn77 | 4:5b4114791035 | 88 | matriz[pos]= 0b01000000000; |
djinn77 | 4:5b4114791035 | 89 | matriz[pos+1]=0b11100000000; |
djinn77 | 0:e82dd940ef80 | 90 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 91 | break; |
djinn77 | 0:e82dd940ef80 | 92 | case 3: |
djinn77 | 4:5b4114791035 | 93 | matriz[pos]= 0b11100000000; |
djinn77 | 4:5b4114791035 | 94 | matriz[pos+1]=0b01000000000; |
djinn77 | 0:e82dd940ef80 | 95 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 96 | break; |
djinn77 | 0:e82dd940ef80 | 97 | case 4: |
djinn77 | 4:5b4114791035 | 98 | matriz[pos]= 0b01000000000; |
djinn77 | 4:5b4114791035 | 99 | matriz[pos+1]=0b11000000000; |
djinn77 | 4:5b4114791035 | 100 | matriz[pos+2]=0b01000000000; |
djinn77 | 0:e82dd940ef80 | 101 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 102 | break; |
djinn77 | 0:e82dd940ef80 | 103 | } |
djinn77 | 0:e82dd940ef80 | 104 | |
djinn77 | 0:e82dd940ef80 | 105 | break; |
djinn77 | 0:e82dd940ef80 | 106 | case 3: |
djinn77 | 0:e82dd940ef80 | 107 | //L |
djinn77 | 0:e82dd940ef80 | 108 | switch(giro){ |
djinn77 | 0:e82dd940ef80 | 109 | case 1: |
djinn77 | 4:5b4114791035 | 110 | matriz[pos]= 0b11000000000; |
djinn77 | 4:5b4114791035 | 111 | matriz[pos+1]=0b10000000000; |
djinn77 | 4:5b4114791035 | 112 | matriz[pos+2]=0b10000000000; |
djinn77 | 0:e82dd940ef80 | 113 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 114 | break; |
djinn77 | 0:e82dd940ef80 | 115 | case 2: |
djinn77 | 4:5b4114791035 | 116 | matriz[pos]= 0b111000000000; |
djinn77 | 4:5b4114791035 | 117 | matriz[pos+1]=0b001000000000; |
djinn77 | 0:e82dd940ef80 | 118 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 119 | break; |
djinn77 | 0:e82dd940ef80 | 120 | case 3: |
djinn77 | 4:5b4114791035 | 121 | matriz[pos]= 0b01000000000; |
djinn77 | 4:5b4114791035 | 122 | matriz[pos+1]=0b01000000000; |
djinn77 | 4:5b4114791035 | 123 | matriz[pos+2]=0b11000000000; |
djinn77 | 0:e82dd940ef80 | 124 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 125 | break; |
djinn77 | 0:e82dd940ef80 | 126 | case 4: |
djinn77 | 4:5b4114791035 | 127 | matriz[pos]= 0b10000000000; |
djinn77 | 4:5b4114791035 | 128 | matriz[pos+1]=0b11100000000; |
djinn77 | 0:e82dd940ef80 | 129 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 130 | break; |
djinn77 | 0:e82dd940ef80 | 131 | } |
djinn77 | 0:e82dd940ef80 | 132 | break; |
djinn77 | 0:e82dd940ef80 | 133 | case 4: |
djinn77 | 0:e82dd940ef80 | 134 | //Z |
djinn77 | 0:e82dd940ef80 | 135 | switch(giro){ |
djinn77 | 2:557f7674d8db | 136 | case 1: case 3: |
djinn77 | 4:5b4114791035 | 137 | matriz[pos]= 0b01000000000; |
djinn77 | 4:5b4114791035 | 138 | matriz[pos+1]=0b11000000000; |
djinn77 | 4:5b4114791035 | 139 | matriz[pos+2]=0b10000000000; |
djinn77 | 0:e82dd940ef80 | 140 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 141 | break; |
djinn77 | 2:557f7674d8db | 142 | case 2: case 4: |
djinn77 | 4:5b4114791035 | 143 | matriz[pos]= 0b11000000000; |
djinn77 | 4:5b4114791035 | 144 | matriz[pos+1]=0b01100000000; |
djinn77 | 0:e82dd940ef80 | 145 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 146 | break; |
djinn77 | 2:557f7674d8db | 147 | |
djinn77 | 0:e82dd940ef80 | 148 | } |
djinn77 | 0:e82dd940ef80 | 149 | break; |
djinn77 | 0:e82dd940ef80 | 150 | case 5: |
djinn77 | 0:e82dd940ef80 | 151 | switch(giro){ |
djinn77 | 2:557f7674d8db | 152 | case 1: case 3: |
djinn77 | 4:5b4114791035 | 153 | matriz[pos]= 0b10000000000; |
djinn77 | 4:5b4114791035 | 154 | matriz[pos+1]=0b10000000000; |
djinn77 | 4:5b4114791035 | 155 | matriz[pos+2]=0b10000000000; |
djinn77 | 0:e82dd940ef80 | 156 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 157 | break; |
djinn77 | 2:557f7674d8db | 158 | case 2: case 4: |
djinn77 | 4:5b4114791035 | 159 | matriz[pos]= 0b11100000000; |
djinn77 | 0:e82dd940ef80 | 160 | imprimir(); |
djinn77 | 0:e82dd940ef80 | 161 | break; |
djinn77 | 0:e82dd940ef80 | 162 | } |
djinn77 | 0:e82dd940ef80 | 163 | |
djinn77 | 0:e82dd940ef80 | 164 | break; |
djinn77 | 0:e82dd940ef80 | 165 | |
djinn77 | 0:e82dd940ef80 | 166 | |
djinn77 | 0:e82dd940ef80 | 167 | |
djinn77 | 0:e82dd940ef80 | 168 | |
djinn77 | 0:e82dd940ef80 | 169 | |
djinn77 | 0:e82dd940ef80 | 170 | } |
djinn77 | 4:5b4114791035 | 171 | matriz[0]=0; |
djinn77 | 4:5b4114791035 | 172 | matriz[1]=0; |
djinn77 | 4:5b4114791035 | 173 | matriz[2]=0; |
djinn77 | 4:5b4114791035 | 174 | matriz[3]=0; |
djinn77 | 4:5b4114791035 | 175 | matriz[4]=0; |
djinn77 | 4:5b4114791035 | 176 | matriz[5]=0; |
djinn77 | 4:5b4114791035 | 177 | matriz[6]=0; |
djinn77 | 4:5b4114791035 | 178 | matriz[7]=0; |
djinn77 | 4:5b4114791035 | 179 | |
djinn77 | 0:e82dd940ef80 | 180 | } |
djinn77 | 1:5819a7e4abf2 | 181 | |
djinn77 | 1:5819a7e4abf2 | 182 | |
djinn77 | 1:5819a7e4abf2 | 183 | |
djinn77 | 1:5819a7e4abf2 | 184 | |
djinn77 | 0:e82dd940ef80 | 185 | } |