Primer codigo

Dependencies:   MAX7219 mbed

Committer:
djinn77
Date:
Thu Sep 06 20:35:45 2018 +0000
Revision:
2:557f7674d8db
Parent:
1:5819a7e4abf2
Child:
3:e3ddaa35784e
Recorte Lineas de codigo

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 2:557f7674d8db 63 debuging("\n Ingrese el posicion. ");
djinn77 1:5819a7e4abf2 64 char pos=pc.getc();
djinn77 2:557f7674d8db 65 debuging("\n Seleccione la Figura. ");
djinn77 1:5819a7e4abf2 66 char figura=pc.getc();
djinn77 2:557f7674d8db 67 debuging("\n Seleccione la rotacion. ");
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 2:557f7674d8db 74 matriz[pos]=0b00000011;
djinn77 2:557f7674d8db 75 matriz[pos+1]=0b00000011;
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 2:557f7674d8db 82 matriz[pos]= 0b00000001;
djinn77 2:557f7674d8db 83 matriz[pos+1]=0b00000011;
djinn77 2:557f7674d8db 84 matriz[pos+2]=0b00000001;
djinn77 0:e82dd940ef80 85 imprimir();
djinn77 0:e82dd940ef80 86 break;
djinn77 0:e82dd940ef80 87 case 2:
djinn77 2:557f7674d8db 88 matriz[pos]= 0b00000010;
djinn77 2:557f7674d8db 89 matriz[pos+1]=0b00000111;
djinn77 0:e82dd940ef80 90 imprimir();
djinn77 0:e82dd940ef80 91 break;
djinn77 0:e82dd940ef80 92 case 3:
djinn77 2:557f7674d8db 93 matriz[pos]= 0b00000111;
djinn77 2:557f7674d8db 94 matriz[pos+1]=0b00000010;
djinn77 0:e82dd940ef80 95 imprimir();
djinn77 0:e82dd940ef80 96 break;
djinn77 0:e82dd940ef80 97 case 4:
djinn77 2:557f7674d8db 98 matriz[pos]= 0b00000010;
djinn77 2:557f7674d8db 99 matriz[pos+1]=0b00000011;
djinn77 2:557f7674d8db 100 matriz[pos+2]=0b00000010;
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 2:557f7674d8db 110 matriz[pos]= 0b00000011;
djinn77 2:557f7674d8db 111 matriz[pos+1]=0b00000001;
djinn77 2:557f7674d8db 112 matriz[pos+2]=0b00000001;
djinn77 0:e82dd940ef80 113 imprimir();
djinn77 0:e82dd940ef80 114 break;
djinn77 0:e82dd940ef80 115 case 2:
djinn77 0:e82dd940ef80 116 matriz[pos]= 0b000000111;
djinn77 0:e82dd940ef80 117 matriz[pos+1]=0b000000100;
djinn77 0:e82dd940ef80 118 imprimir();
djinn77 0:e82dd940ef80 119 break;
djinn77 0:e82dd940ef80 120 case 3:
djinn77 2:557f7674d8db 121 matriz[pos]= 0b00000010;
djinn77 2:557f7674d8db 122 matriz[pos+1]=0b00000010;
djinn77 2:557f7674d8db 123 matriz[pos+2]=0b00000011;
djinn77 0:e82dd940ef80 124 imprimir();
djinn77 0:e82dd940ef80 125 break;
djinn77 0:e82dd940ef80 126 case 4:
djinn77 2:557f7674d8db 127 matriz[pos]= 0b00000001;
djinn77 2:557f7674d8db 128 matriz[pos+1]=0b00000111;
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 0:e82dd940ef80 137 matriz[pos]= 0b000000001;
djinn77 0:e82dd940ef80 138 matriz[pos+1]=0b000000011;
djinn77 0:e82dd940ef80 139 matriz[pos+2]=0b000000010;
djinn77 0:e82dd940ef80 140 imprimir();
djinn77 0:e82dd940ef80 141 break;
djinn77 2:557f7674d8db 142 case 2: case 4:
djinn77 0:e82dd940ef80 143 matriz[pos]= 0b000000110;
djinn77 0:e82dd940ef80 144 matriz[pos+1]=0b000000011;
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 0:e82dd940ef80 153 matriz[pos]= 0b000000001;
djinn77 0:e82dd940ef80 154 matriz[pos+1]=0b000000001;
djinn77 0:e82dd940ef80 155 matriz[pos+2]=0b000000001;
djinn77 0:e82dd940ef80 156 imprimir();
djinn77 0:e82dd940ef80 157 break;
djinn77 2:557f7674d8db 158 case 2: case 4:
djinn77 2:557f7674d8db 159 matriz[pos]= 0b000000111;
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 1:5819a7e4abf2 171 matriz[0]=0b00000000;
djinn77 1:5819a7e4abf2 172 matriz[1]=0b00000000;
djinn77 1:5819a7e4abf2 173 matriz[2]=0b00000000;
djinn77 1:5819a7e4abf2 174 matriz[3]=0b00000000;
djinn77 1:5819a7e4abf2 175 matriz[4]=0b00000000;
djinn77 1:5819a7e4abf2 176 matriz[5]=0b00000000;
djinn77 1:5819a7e4abf2 177 matriz[6]=0b00000000;
djinn77 1:5819a7e4abf2 178 matriz[7]=0b00000000;
djinn77 0:e82dd940ef80 179 }
djinn77 1:5819a7e4abf2 180
djinn77 1:5819a7e4abf2 181
djinn77 1:5819a7e4abf2 182
djinn77 1:5819a7e4abf2 183
djinn77 0:e82dd940ef80 184 }