Primer codigo

Dependencies:   MAX7219 mbed

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?

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