Primer codigo

Dependencies:   MAX7219 mbed

Committer:
djinn77
Date:
Fri Sep 07 12:30:22 2018 +0000
Revision:
4:5b4114791035
Parent:
3:e3ddaa35784e
Child:
5:3f4a420fd9b1
corriemiento completo

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 0:e82dd940ef80 21 // Sele aplicac corriento a todas para facilitar selecccion
djinn77 0:e82dd940ef80 22
djinn77 4:5b4114791035 23 for(int i=0;i<=12;i++)
djinn77 0:e82dd940ef80 24 {
djinn77 1:5819a7e4abf2 25
djinn77 4:5b4114791035 26 deviceM.write_digit(1,1,matriz[0]>>i);
djinn77 4:5b4114791035 27 deviceM.write_digit(1,2,matriz[1]>>i);
djinn77 4:5b4114791035 28 deviceM.write_digit(1,3,matriz[2]>>i);
djinn77 4:5b4114791035 29 deviceM.write_digit(1,4,matriz[3]>>i);
djinn77 4:5b4114791035 30 deviceM.write_digit(1,5,matriz[4]>>i);
djinn77 4:5b4114791035 31 deviceM.write_digit(1,6,matriz[5]>>i);
djinn77 4:5b4114791035 32 deviceM.write_digit(1,7,matriz[6]>>i);
djinn77 4:5b4114791035 33 deviceM.write_digit(1,8,matriz[7]>>i);
djinn77 0:e82dd940ef80 34 wait(1.0);
djinn77 0:e82dd940ef80 35
djinn77 0:e82dd940ef80 36 }
djinn77 1:5819a7e4abf2 37
djinn77 0:e82dd940ef80 38 }
djinn77 0:e82dd940ef80 39
djinn77 0:e82dd940ef80 40 int main() {
djinn77 0:e82dd940ef80 41
djinn77 0:e82dd940ef80 42 max7219_configuration_t cfg = {
djinn77 0:e82dd940ef80 43 .device_number = 1,
djinn77 0:e82dd940ef80 44 .decode_mode = 0,
djinn77 0:e82dd940ef80 45 .intensity = Max7219::MAX7219_INTENSITY_8,
djinn77 0:e82dd940ef80 46 .scan_limit = Max7219::MAX7219_SCAN_8
djinn77 0:e82dd940ef80 47 };
djinn77 0:e82dd940ef80 48
djinn77 0:e82dd940ef80 49 deviceM.init_device(cfg);
djinn77 0:e82dd940ef80 50
djinn77 0:e82dd940ef80 51 deviceM.enable_device(1);
djinn77 0:e82dd940ef80 52
djinn77 0:e82dd940ef80 53 deviceM.set_display_test();
djinn77 0:e82dd940ef80 54 wait(1);
djinn77 1:5819a7e4abf2 55 deviceM.clear_display_test();
djinn77 0:e82dd940ef80 56 wait(1);
djinn77 0:e82dd940ef80 57
djinn77 0:e82dd940ef80 58
djinn77 0:e82dd940ef80 59 while(1){
djinn77 0:e82dd940ef80 60
djinn77 1:5819a7e4abf2 61 pc.baud(38400);
djinn77 4:5b4114791035 62 char pos= 0;
djinn77 4:5b4114791035 63 char figura= 0;
djinn77 4:5b4114791035 64 char giro= 0;
djinn77 2:557f7674d8db 65 debuging("\n Ingrese el posicion. ");
djinn77 4:5b4114791035 66 pos=pc.getc();
djinn77 2:557f7674d8db 67 debuging("\n Seleccione la Figura. ");
djinn77 4:5b4114791035 68 figura=pc.getc();
djinn77 2:557f7674d8db 69 debuging("\n Seleccione la rotacion. ");
djinn77 4:5b4114791035 70 giro=pc.getc();
djinn77 0:e82dd940ef80 71
djinn77 0:e82dd940ef80 72
djinn77 0:e82dd940ef80 73 switch(figura){
djinn77 0:e82dd940ef80 74 case 1:
djinn77 3:e3ddaa35784e 75 // Cuadrado
djinn77 3:e3ddaa35784e 76 switch(giro){
djinn77 3:e3ddaa35784e 77 case 1: case 2: case 3: case 4:
djinn77 4:5b4114791035 78 matriz[pos]= 0b11000000000;
djinn77 4:5b4114791035 79 matriz[pos+1]=0b11000000000;
djinn77 0:e82dd940ef80 80 imprimir();
djinn77 0:e82dd940ef80 81 break;
djinn77 3:e3ddaa35784e 82 }
djinn77 3:e3ddaa35784e 83 break;
djinn77 0:e82dd940ef80 84 case 2:
djinn77 0:e82dd940ef80 85 //T
djinn77 0:e82dd940ef80 86 switch(giro){
djinn77 0:e82dd940ef80 87 case 1:
djinn77 4:5b4114791035 88 matriz[pos]= 0b10000000000;
djinn77 4:5b4114791035 89 matriz[pos+1]=0b11000000000;
djinn77 4:5b4114791035 90 matriz[pos+2]=0b10000000000;
djinn77 0:e82dd940ef80 91 imprimir();
djinn77 0:e82dd940ef80 92 break;
djinn77 0:e82dd940ef80 93 case 2:
djinn77 4:5b4114791035 94 matriz[pos]= 0b01000000000;
djinn77 4:5b4114791035 95 matriz[pos+1]=0b11100000000;
djinn77 0:e82dd940ef80 96 imprimir();
djinn77 0:e82dd940ef80 97 break;
djinn77 0:e82dd940ef80 98 case 3:
djinn77 4:5b4114791035 99 matriz[pos]= 0b11100000000;
djinn77 4:5b4114791035 100 matriz[pos+1]=0b01000000000;
djinn77 0:e82dd940ef80 101 imprimir();
djinn77 0:e82dd940ef80 102 break;
djinn77 0:e82dd940ef80 103 case 4:
djinn77 4:5b4114791035 104 matriz[pos]= 0b01000000000;
djinn77 4:5b4114791035 105 matriz[pos+1]=0b11000000000;
djinn77 4:5b4114791035 106 matriz[pos+2]=0b01000000000;
djinn77 0:e82dd940ef80 107 imprimir();
djinn77 0:e82dd940ef80 108 break;
djinn77 0:e82dd940ef80 109 }
djinn77 0:e82dd940ef80 110
djinn77 0:e82dd940ef80 111 break;
djinn77 0:e82dd940ef80 112 case 3:
djinn77 0:e82dd940ef80 113 //L
djinn77 0:e82dd940ef80 114 switch(giro){
djinn77 0:e82dd940ef80 115 case 1:
djinn77 4:5b4114791035 116 matriz[pos]= 0b11000000000;
djinn77 4:5b4114791035 117 matriz[pos+1]=0b10000000000;
djinn77 4:5b4114791035 118 matriz[pos+2]=0b10000000000;
djinn77 0:e82dd940ef80 119 imprimir();
djinn77 0:e82dd940ef80 120 break;
djinn77 0:e82dd940ef80 121 case 2:
djinn77 4:5b4114791035 122 matriz[pos]= 0b111000000000;
djinn77 4:5b4114791035 123 matriz[pos+1]=0b001000000000;
djinn77 0:e82dd940ef80 124 imprimir();
djinn77 0:e82dd940ef80 125 break;
djinn77 0:e82dd940ef80 126 case 3:
djinn77 4:5b4114791035 127 matriz[pos]= 0b01000000000;
djinn77 4:5b4114791035 128 matriz[pos+1]=0b01000000000;
djinn77 4:5b4114791035 129 matriz[pos+2]=0b11000000000;
djinn77 0:e82dd940ef80 130 imprimir();
djinn77 0:e82dd940ef80 131 break;
djinn77 0:e82dd940ef80 132 case 4:
djinn77 4:5b4114791035 133 matriz[pos]= 0b10000000000;
djinn77 4:5b4114791035 134 matriz[pos+1]=0b11100000000;
djinn77 0:e82dd940ef80 135 imprimir();
djinn77 0:e82dd940ef80 136 break;
djinn77 0:e82dd940ef80 137 }
djinn77 0:e82dd940ef80 138 break;
djinn77 0:e82dd940ef80 139 case 4:
djinn77 0:e82dd940ef80 140 //Z
djinn77 0:e82dd940ef80 141 switch(giro){
djinn77 2:557f7674d8db 142 case 1: case 3:
djinn77 4:5b4114791035 143 matriz[pos]= 0b01000000000;
djinn77 4:5b4114791035 144 matriz[pos+1]=0b11000000000;
djinn77 4:5b4114791035 145 matriz[pos+2]=0b10000000000;
djinn77 0:e82dd940ef80 146 imprimir();
djinn77 0:e82dd940ef80 147 break;
djinn77 2:557f7674d8db 148 case 2: case 4:
djinn77 4:5b4114791035 149 matriz[pos]= 0b11000000000;
djinn77 4:5b4114791035 150 matriz[pos+1]=0b01100000000;
djinn77 0:e82dd940ef80 151 imprimir();
djinn77 0:e82dd940ef80 152 break;
djinn77 2:557f7674d8db 153
djinn77 0:e82dd940ef80 154 }
djinn77 0:e82dd940ef80 155 break;
djinn77 0:e82dd940ef80 156 case 5:
djinn77 0:e82dd940ef80 157 switch(giro){
djinn77 2:557f7674d8db 158 case 1: case 3:
djinn77 4:5b4114791035 159 matriz[pos]= 0b10000000000;
djinn77 4:5b4114791035 160 matriz[pos+1]=0b10000000000;
djinn77 4:5b4114791035 161 matriz[pos+2]=0b10000000000;
djinn77 0:e82dd940ef80 162 imprimir();
djinn77 0:e82dd940ef80 163 break;
djinn77 2:557f7674d8db 164 case 2: case 4:
djinn77 4:5b4114791035 165 matriz[pos]= 0b11100000000;
djinn77 0:e82dd940ef80 166 imprimir();
djinn77 0:e82dd940ef80 167 break;
djinn77 0:e82dd940ef80 168 }
djinn77 0:e82dd940ef80 169
djinn77 0:e82dd940ef80 170 break;
djinn77 0:e82dd940ef80 171
djinn77 0:e82dd940ef80 172
djinn77 0:e82dd940ef80 173
djinn77 0:e82dd940ef80 174
djinn77 0:e82dd940ef80 175
djinn77 0:e82dd940ef80 176 }
djinn77 4:5b4114791035 177 matriz[0]=0;
djinn77 4:5b4114791035 178 matriz[1]=0;
djinn77 4:5b4114791035 179 matriz[2]=0;
djinn77 4:5b4114791035 180 matriz[3]=0;
djinn77 4:5b4114791035 181 matriz[4]=0;
djinn77 4:5b4114791035 182 matriz[5]=0;
djinn77 4:5b4114791035 183 matriz[6]=0;
djinn77 4:5b4114791035 184 matriz[7]=0;
djinn77 4:5b4114791035 185
djinn77 0:e82dd940ef80 186 }
djinn77 1:5819a7e4abf2 187
djinn77 1:5819a7e4abf2 188
djinn77 1:5819a7e4abf2 189
djinn77 1:5819a7e4abf2 190
djinn77 0:e82dd940ef80 191 }