Primer codigo

Dependencies:   MAX7219 mbed

main.cpp

Committer:
djinn77
Date:
2018-09-05
Revision:
0:e82dd940ef80
Child:
1:5819a7e4abf2

File content as of revision 0:e82dd940ef80:

#include "mbed.h"
#include "max7219.h"
    
Max7219 deviceM(PB_15, PB_14, PB_13, PB_12);
uint8_t A, B, C, D, E, F, G, H = 0b00000000;
int matriz[]={A,B,C,D,E,F,G,H};

 void imprimir(){
    // Sele aplicac corriento a todas para facilitar selecccion
    
         for(int i=0;i<=8;i++)
         {
                            
        deviceM.write_digit(1,1,matriz[0]<<i);
        deviceM.write_digit(1,2,matriz[1]<<i);
        deviceM.write_digit(1,3,matriz[2]<<i);
        deviceM.write_digit(1,4,matriz[3]<<i);
        deviceM.write_digit(1,5,matriz[4]<<i);
        deviceM.write_digit(1,6,matriz[5]<<i);
        deviceM.write_digit(1,7,matriz[6]<<i);
        deviceM.write_digit(1,8,matriz[7]<<i);
        wait(1.0);
                        
         }
        A=0b00000000;
        B=0b00000000;
        C=0b00000000;
        D=0b00000000;
        E=0b00000000;
        F=0b00000000;
        G=0b00000000;
        H=0b00000000;   
    }
 
int main() {
    
    max7219_configuration_t cfg = {
    .device_number = 1,
    .decode_mode = 0,
    .intensity = Max7219::MAX7219_INTENSITY_8,
    .scan_limit = Max7219::MAX7219_SCAN_8
};
   
    deviceM.init_device(cfg);
    
    deviceM.enable_device(1);
   
    deviceM.set_display_test();
    wait(1);   
   deviceM.clear_display_test();
    wait(1);
        
        
    while(1){
         
         int pos=1;
         int figura=1;
         int giro=2;
         
         
         switch(figura){
             case 1:
             // Cuadrado
             matriz[pos]=0b000000011;
             matriz[pos+1]=0b000000011;
             imprimir();
             break;
             case 2:
             //T
             switch(giro){
                 case 1:
                 matriz[pos]=  0b000000001;
                 matriz[pos+1]=0b000000011;
                 matriz[pos+2]=0b000000001;
                 imprimir();
                 break;
                 case 2:
                 matriz[pos]=  0b000000010;
                 matriz[pos+1]=0b000000111;
                 matriz[pos+2]=0b000000000;
                 imprimir();
                 break;
                 case 3:
                 matriz[pos]=  0b000000000;
                 matriz[pos+1]=0b000000111;
                 matriz[pos+2]=0b000000010;
                 imprimir();
                 break;
                 case 4:
                 matriz[pos]=  0b000000010;
                 matriz[pos+1]=0b000000011;
                 matriz[pos+2]=0b000000010;
                 imprimir();
                 break;
                 }
        
             break;
             case 3:
             //L
             switch(giro){
                 case 1:
                 matriz[pos]=  0b000000011;
                 matriz[pos+1]=0b000000001;
                 matriz[pos+2]=0b000000001;
                 imprimir();
                 break;
                 case 2:
                 matriz[pos]=  0b000000111;
                 matriz[pos+1]=0b000000100;
                 matriz[pos+2]=0b000000000;
                 imprimir();
                 break;
                 case 3:
                 matriz[pos]=  0b000000010;
                 matriz[pos+1]=0b000000010;
                 matriz[pos+2]=0b000000011;
                 imprimir();
                 break;
                 case 4:
                 matriz[pos]=  0b000000000;
                 matriz[pos+1]=0b000000001;
                 matriz[pos+2]=0b000000111;
                 imprimir();
                 break;
                 }
             break;
             case 4:
             //Z
             switch(giro){
                 case 1:
                 matriz[pos]=  0b000000001;
                 matriz[pos+1]=0b000000011;
                 matriz[pos+2]=0b000000010;
                 imprimir();
                 break;
                 case 2:
                 matriz[pos]=  0b000000110;
                 matriz[pos+1]=0b000000011;
                 matriz[pos+2]=0b000000000;
                 imprimir();
                 break;
                 case 3:
                 matriz[pos]=  0b000000001;
                 matriz[pos+1]=0b000000011;
                 matriz[pos+2]=0b000000010;
                 imprimir();
                 break;
                 case 4:
                 matriz[pos]=  0b000000110;
                 matriz[pos+1]=0b000000011;
                 matriz[pos+2]=0b000000000;
                 imprimir();
                 break;
                 }
             break;
             case 5:
             switch(giro){
                 case 1:
                 matriz[pos]=  0b000000001;
                 matriz[pos+1]=0b000000001;
                 matriz[pos+2]=0b000000001;
                 imprimir();
                 break;
                 case 2:
                 matriz[pos]=  0b000000000;
                 matriz[pos+1]=0b000000111;
                 matriz[pos+2]=0b000000000;
                 imprimir();
                 break;
                 }
             
             break;
             
             
             
             
             
             }
         
        }
}