Primer codigo

Dependencies:   MAX7219 mbed

Committer:
djinn77
Date:
Thu Sep 06 13:55:18 2018 +0000
Revision:
1:5819a7e4abf2
Parent:
0:e82dd940ef80
Child:
2:557f7674d8db
Eliminado error de memoria matriz de dibujo

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 0:e82dd940ef80 9 uint8_t A, B, C, D, E, F, G, H = 0b00000000;
djinn77 0:e82dd940ef80 10 int matriz[]={A,B,C,D,E,F,G,H};
djinn77 0:e82dd940ef80 11
djinn77 1:5819a7e4abf2 12 void debuging(char*s,...){
djinn77 1:5819a7e4abf2 13
djinn77 1:5819a7e4abf2 14 #if DEBUG
djinn77 1:5819a7e4abf2 15 pc.printf(s);
djinn77 1:5819a7e4abf2 16 #endif
djinn77 1:5819a7e4abf2 17
djinn77 1:5819a7e4abf2 18 }
djinn77 1:5819a7e4abf2 19
djinn77 1:5819a7e4abf2 20
djinn77 0:e82dd940ef80 21 void imprimir(){
djinn77 0:e82dd940ef80 22 // Sele aplicac corriento a todas para facilitar selecccion
djinn77 0:e82dd940ef80 23
djinn77 0:e82dd940ef80 24 for(int i=0;i<=8;i++)
djinn77 0:e82dd940ef80 25 {
djinn77 1:5819a7e4abf2 26
djinn77 0:e82dd940ef80 27 deviceM.write_digit(1,1,matriz[0]<<i);
djinn77 0:e82dd940ef80 28 deviceM.write_digit(1,2,matriz[1]<<i);
djinn77 0:e82dd940ef80 29 deviceM.write_digit(1,3,matriz[2]<<i);
djinn77 0:e82dd940ef80 30 deviceM.write_digit(1,4,matriz[3]<<i);
djinn77 0:e82dd940ef80 31 deviceM.write_digit(1,5,matriz[4]<<i);
djinn77 0:e82dd940ef80 32 deviceM.write_digit(1,6,matriz[5]<<i);
djinn77 0:e82dd940ef80 33 deviceM.write_digit(1,7,matriz[6]<<i);
djinn77 0:e82dd940ef80 34 deviceM.write_digit(1,8,matriz[7]<<i);
djinn77 0:e82dd940ef80 35 wait(1.0);
djinn77 0:e82dd940ef80 36
djinn77 0:e82dd940ef80 37 }
djinn77 1:5819a7e4abf2 38
djinn77 0:e82dd940ef80 39 }
djinn77 0:e82dd940ef80 40
djinn77 0:e82dd940ef80 41 int main() {
djinn77 0:e82dd940ef80 42
djinn77 0:e82dd940ef80 43 max7219_configuration_t cfg = {
djinn77 0:e82dd940ef80 44 .device_number = 1,
djinn77 0:e82dd940ef80 45 .decode_mode = 0,
djinn77 0:e82dd940ef80 46 .intensity = Max7219::MAX7219_INTENSITY_8,
djinn77 0:e82dd940ef80 47 .scan_limit = Max7219::MAX7219_SCAN_8
djinn77 0:e82dd940ef80 48 };
djinn77 0:e82dd940ef80 49
djinn77 0:e82dd940ef80 50 deviceM.init_device(cfg);
djinn77 0:e82dd940ef80 51
djinn77 0:e82dd940ef80 52 deviceM.enable_device(1);
djinn77 0:e82dd940ef80 53
djinn77 0:e82dd940ef80 54 deviceM.set_display_test();
djinn77 0:e82dd940ef80 55 wait(1);
djinn77 1:5819a7e4abf2 56 deviceM.clear_display_test();
djinn77 0:e82dd940ef80 57 wait(1);
djinn77 0:e82dd940ef80 58
djinn77 0:e82dd940ef80 59
djinn77 0:e82dd940ef80 60 while(1){
djinn77 0:e82dd940ef80 61
djinn77 1:5819a7e4abf2 62 pc.baud(38400);
djinn77 1:5819a7e4abf2 63 debuging("\n Ingrese el valor 1. ");
djinn77 1:5819a7e4abf2 64 char pos=pc.getc();
djinn77 1:5819a7e4abf2 65 debuging("\n Ingrese el valor 2. ");
djinn77 1:5819a7e4abf2 66 char figura=pc.getc();
djinn77 1:5819a7e4abf2 67 debuging("\n Ingrese el valor 3. ");
djinn77 1:5819a7e4abf2 68 char giro=pc.getc();
djinn77 0:e82dd940ef80 69
djinn77 0:e82dd940ef80 70
djinn77 0:e82dd940ef80 71 switch(figura){
djinn77 0:e82dd940ef80 72 case 1:
djinn77 0:e82dd940ef80 73 // Cuadrado
djinn77 0:e82dd940ef80 74 matriz[pos]=0b000000011;
djinn77 0:e82dd940ef80 75 matriz[pos+1]=0b000000011;
djinn77 0:e82dd940ef80 76 imprimir();
djinn77 0:e82dd940ef80 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 0:e82dd940ef80 82 matriz[pos]= 0b000000001;
djinn77 0:e82dd940ef80 83 matriz[pos+1]=0b000000011;
djinn77 0:e82dd940ef80 84 matriz[pos+2]=0b000000001;
djinn77 0:e82dd940ef80 85 imprimir();
djinn77 0:e82dd940ef80 86 break;
djinn77 0:e82dd940ef80 87 case 2:
djinn77 0:e82dd940ef80 88 matriz[pos]= 0b000000010;
djinn77 0:e82dd940ef80 89 matriz[pos+1]=0b000000111;
djinn77 0:e82dd940ef80 90 matriz[pos+2]=0b000000000;
djinn77 0:e82dd940ef80 91 imprimir();
djinn77 0:e82dd940ef80 92 break;
djinn77 0:e82dd940ef80 93 case 3:
djinn77 0:e82dd940ef80 94 matriz[pos]= 0b000000000;
djinn77 0:e82dd940ef80 95 matriz[pos+1]=0b000000111;
djinn77 0:e82dd940ef80 96 matriz[pos+2]=0b000000010;
djinn77 0:e82dd940ef80 97 imprimir();
djinn77 0:e82dd940ef80 98 break;
djinn77 0:e82dd940ef80 99 case 4:
djinn77 0:e82dd940ef80 100 matriz[pos]= 0b000000010;
djinn77 0:e82dd940ef80 101 matriz[pos+1]=0b000000011;
djinn77 0:e82dd940ef80 102 matriz[pos+2]=0b000000010;
djinn77 0:e82dd940ef80 103 imprimir();
djinn77 0:e82dd940ef80 104 break;
djinn77 0:e82dd940ef80 105 }
djinn77 0:e82dd940ef80 106
djinn77 0:e82dd940ef80 107 break;
djinn77 0:e82dd940ef80 108 case 3:
djinn77 0:e82dd940ef80 109 //L
djinn77 0:e82dd940ef80 110 switch(giro){
djinn77 0:e82dd940ef80 111 case 1:
djinn77 0:e82dd940ef80 112 matriz[pos]= 0b000000011;
djinn77 0:e82dd940ef80 113 matriz[pos+1]=0b000000001;
djinn77 0:e82dd940ef80 114 matriz[pos+2]=0b000000001;
djinn77 0:e82dd940ef80 115 imprimir();
djinn77 0:e82dd940ef80 116 break;
djinn77 0:e82dd940ef80 117 case 2:
djinn77 0:e82dd940ef80 118 matriz[pos]= 0b000000111;
djinn77 0:e82dd940ef80 119 matriz[pos+1]=0b000000100;
djinn77 0:e82dd940ef80 120 matriz[pos+2]=0b000000000;
djinn77 0:e82dd940ef80 121 imprimir();
djinn77 0:e82dd940ef80 122 break;
djinn77 0:e82dd940ef80 123 case 3:
djinn77 0:e82dd940ef80 124 matriz[pos]= 0b000000010;
djinn77 0:e82dd940ef80 125 matriz[pos+1]=0b000000010;
djinn77 0:e82dd940ef80 126 matriz[pos+2]=0b000000011;
djinn77 0:e82dd940ef80 127 imprimir();
djinn77 0:e82dd940ef80 128 break;
djinn77 0:e82dd940ef80 129 case 4:
djinn77 0:e82dd940ef80 130 matriz[pos]= 0b000000000;
djinn77 0:e82dd940ef80 131 matriz[pos+1]=0b000000001;
djinn77 0:e82dd940ef80 132 matriz[pos+2]=0b000000111;
djinn77 0:e82dd940ef80 133 imprimir();
djinn77 0:e82dd940ef80 134 break;
djinn77 0:e82dd940ef80 135 }
djinn77 0:e82dd940ef80 136 break;
djinn77 0:e82dd940ef80 137 case 4:
djinn77 0:e82dd940ef80 138 //Z
djinn77 0:e82dd940ef80 139 switch(giro){
djinn77 0:e82dd940ef80 140 case 1:
djinn77 0:e82dd940ef80 141 matriz[pos]= 0b000000001;
djinn77 0:e82dd940ef80 142 matriz[pos+1]=0b000000011;
djinn77 0:e82dd940ef80 143 matriz[pos+2]=0b000000010;
djinn77 0:e82dd940ef80 144 imprimir();
djinn77 0:e82dd940ef80 145 break;
djinn77 0:e82dd940ef80 146 case 2:
djinn77 0:e82dd940ef80 147 matriz[pos]= 0b000000110;
djinn77 0:e82dd940ef80 148 matriz[pos+1]=0b000000011;
djinn77 0:e82dd940ef80 149 matriz[pos+2]=0b000000000;
djinn77 0:e82dd940ef80 150 imprimir();
djinn77 0:e82dd940ef80 151 break;
djinn77 0:e82dd940ef80 152 case 3:
djinn77 0:e82dd940ef80 153 matriz[pos]= 0b000000001;
djinn77 0:e82dd940ef80 154 matriz[pos+1]=0b000000011;
djinn77 0:e82dd940ef80 155 matriz[pos+2]=0b000000010;
djinn77 0:e82dd940ef80 156 imprimir();
djinn77 0:e82dd940ef80 157 break;
djinn77 0:e82dd940ef80 158 case 4:
djinn77 0:e82dd940ef80 159 matriz[pos]= 0b000000110;
djinn77 0:e82dd940ef80 160 matriz[pos+1]=0b000000011;
djinn77 0:e82dd940ef80 161 matriz[pos+2]=0b000000000;
djinn77 0:e82dd940ef80 162 imprimir();
djinn77 0:e82dd940ef80 163 break;
djinn77 0:e82dd940ef80 164 }
djinn77 0:e82dd940ef80 165 break;
djinn77 0:e82dd940ef80 166 case 5:
djinn77 0:e82dd940ef80 167 switch(giro){
djinn77 0:e82dd940ef80 168 case 1:
djinn77 0:e82dd940ef80 169 matriz[pos]= 0b000000001;
djinn77 0:e82dd940ef80 170 matriz[pos+1]=0b000000001;
djinn77 0:e82dd940ef80 171 matriz[pos+2]=0b000000001;
djinn77 0:e82dd940ef80 172 imprimir();
djinn77 0:e82dd940ef80 173 break;
djinn77 0:e82dd940ef80 174 case 2:
djinn77 0:e82dd940ef80 175 matriz[pos]= 0b000000000;
djinn77 0:e82dd940ef80 176 matriz[pos+1]=0b000000111;
djinn77 0:e82dd940ef80 177 matriz[pos+2]=0b000000000;
djinn77 0:e82dd940ef80 178 imprimir();
djinn77 0:e82dd940ef80 179 break;
djinn77 0:e82dd940ef80 180 }
djinn77 0:e82dd940ef80 181
djinn77 0:e82dd940ef80 182 break;
djinn77 0:e82dd940ef80 183
djinn77 0:e82dd940ef80 184
djinn77 0:e82dd940ef80 185
djinn77 0:e82dd940ef80 186
djinn77 0:e82dd940ef80 187
djinn77 0:e82dd940ef80 188 }
djinn77 1:5819a7e4abf2 189 matriz[0]=0b00000000;
djinn77 1:5819a7e4abf2 190 matriz[1]=0b00000000;
djinn77 1:5819a7e4abf2 191 matriz[2]=0b00000000;
djinn77 1:5819a7e4abf2 192 matriz[3]=0b00000000;
djinn77 1:5819a7e4abf2 193 matriz[4]=0b00000000;
djinn77 1:5819a7e4abf2 194 matriz[5]=0b00000000;
djinn77 1:5819a7e4abf2 195 matriz[6]=0b00000000;
djinn77 1:5819a7e4abf2 196 matriz[7]=0b00000000;
djinn77 0:e82dd940ef80 197 }
djinn77 1:5819a7e4abf2 198
djinn77 1:5819a7e4abf2 199
djinn77 1:5819a7e4abf2 200
djinn77 1:5819a7e4abf2 201
djinn77 0:e82dd940ef80 202 }