Primer codigo

Dependencies:   MAX7219 mbed

main.cpp

Committer:
djinn77
Date:
2018-09-07
Revision:
3:e3ddaa35784e
Parent:
2:557f7674d8db
Child:
4:5b4114791035

File content as of revision 3:e3ddaa35784e:

#include "mbed.h"
#include "max7219.h"
//#define DEBUG 1

Serial pc(USBTX,USBRX);

    
Max7219 deviceM(PB_15, PB_14, PB_13, PB_12);
int matriz[8]={0};

void debuging(char*s,...){
    
    #if DEBUG
    pc.printf(s);
    #endif
    
    }


 void imprimir(){
    // Sele aplicac corriento a todas para facilitar selecccion
    
         for(int i=0;i<=16;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);
                        
         }
      
    }
 
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){
         
         pc.baud(38400);
         debuging("\n Ingrese el posicion. ");
         char pos=pc.getc();
         debuging("\n Seleccione la Figura. ");
         char figura=pc.getc();
         debuging("\n Seleccione la rotacion. ");
         char giro=pc.getc();
         
         
         switch(figura){
             case 1:
              // Cuadrado
             switch(giro){
             case 1: case 2: case 3: case 4:
             matriz[pos]=0b1100000000000000;
             matriz[pos+1]=0b1100000000000000;
             imprimir();
             break;
             }
             break;
             case 2:
             //T
             switch(giro){
                 case 1:
                 matriz[pos]=  0b00000001;
                 matriz[pos+1]=0b00000011;
                 matriz[pos+2]=0b00000001;
                 imprimir();
                 break;
                 case 2:
                 matriz[pos]=  0b00000010;
                 matriz[pos+1]=0b00000111;
                 imprimir();
                 break;
                 case 3:
                 matriz[pos]=  0b00000111;
                 matriz[pos+1]=0b00000010;
                 imprimir();
                 break;
                 case 4:
                 matriz[pos]=  0b00000010;
                 matriz[pos+1]=0b00000011;
                 matriz[pos+2]=0b00000010;
                 imprimir();
                 break;
                 }
        
             break;
             case 3:
             //L
             switch(giro){
                 case 1:
                 matriz[pos]=  0b00000011;
                 matriz[pos+1]=0b00000001;
                 matriz[pos+2]=0b00000001;
                 imprimir();
                 break;
                 case 2:
                 matriz[pos]=  0b000000111;
                 matriz[pos+1]=0b000000100;
                 imprimir();
                 break;
                 case 3:
                 matriz[pos]=  0b00000010;
                 matriz[pos+1]=0b00000010;
                 matriz[pos+2]=0b00000011;
                 imprimir();
                 break;
                 case 4:
                 matriz[pos]=  0b00000001;
                 matriz[pos+1]=0b00000111;
                 imprimir();
                 break;
                 }
             break;
             case 4:
             //Z
             switch(giro){
                 case 1: case 3:
                 matriz[pos]=  0b000000001;
                 matriz[pos+1]=0b000000011;
                 matriz[pos+2]=0b000000010;
                 imprimir();
                 break;
                 case 2: case 4:
                 matriz[pos]=  0b000000110;
                 matriz[pos+1]=0b000000011;
                 imprimir();
                 break;
    
                 }
             break;
             case 5:
             switch(giro){
                 case 1: case 3:
                 matriz[pos]=  0b000000001;
                 matriz[pos+1]=0b000000001;
                 matriz[pos+2]=0b000000001;
                 imprimir();
                 break;
                 case 2: case 4:
                 matriz[pos]=  0b000000111;
                 imprimir();
                 break;
                 }
             
             break;
             
             
             
             
             
             }
        matriz[0]=0b00000000;
        matriz[1]=0b00000000;
        matriz[2]=0b00000000;
        matriz[3]=0b00000000;
        matriz[4]=0b00000000;
        matriz[5]=0b00000000;
        matriz[6]=0b00000000;
        matriz[7]=0b00000000;
        pos= 0;
        figura= 0;
        giro= 0;
        }
        
       
        
     
}