Datos SPI letra b

Dependencies:   mbed

Fork of 00_LAB_matrix8x8_SPI by ferney alberto beltran molina

Committer:
djinn77
Date:
Fri Nov 16 07:04:28 2018 +0000
Revision:
13:3c9081c62a99
Parent:
12:9397a2bdfd28
Nombres de funciones cambiados para funcionar

Who changed what in which revision?

UserRevisionLine numberNew contents of line
djinn77 12:9397a2bdfd28 1
djinn77 12:9397a2bdfd28 2 #include "mbed.h"
djinn77 12:9397a2bdfd28 3 #include <math.h>
djinn77 12:9397a2bdfd28 4 #include "Piezas.h"
djinn77 12:9397a2bdfd28 5 Serial pc(USBTX,USBRX);
djinn77 12:9397a2bdfd28 6 SPI deviceM(PB_5, PB_4, PB_3); // D4(gris), Ninguno, D3(azul)
djinn77 12:9397a2bdfd28 7 DigitalOut ssel (PA_4); // A2(morado)
djinn77 12:9397a2bdfd28 8
djinn77 12:9397a2bdfd28 9 InterruptIn pulsador_izq(A0);
djinn77 12:9397a2bdfd28 10 InterruptIn pulsador_der(A4);
djinn77 12:9397a2bdfd28 11
djinn77 12:9397a2bdfd28 12
djinn77 12:9397a2bdfd28 13
djinn77 12:9397a2bdfd28 14 int imprimir[8] = {0,0,0,0,0,0,0,0};
djinn77 13:3c9081c62a99 15
djinn77 13:3c9081c62a99 16 uint16_t FIG_C[8]= {0b00000011,
djinn77 13:3c9081c62a99 17 0b00000111,
djinn77 13:3c9081c62a99 18 0b11111111,
djinn77 13:3c9081c62a99 19 0b00000111,
djinn77 13:3c9081c62a99 20 0b00001111,
djinn77 13:3c9081c62a99 21 0b00011111,
djinn77 13:3c9081c62a99 22 0b00000111,
djinn77 13:3c9081c62a99 23 0b00000111};
djinn77 12:9397a2bdfd28 24 float vel=0.1;
djinn77 12:9397a2bdfd28 25
djinn77 12:9397a2bdfd28 26 void sendSPI(uint8_t d1, uint8_t d2)
djinn77 12:9397a2bdfd28 27 {
djinn77 12:9397a2bdfd28 28 deviceM.unlock();
djinn77 12:9397a2bdfd28 29 ssel=0;
djinn77 12:9397a2bdfd28 30 deviceM.write(d1);
djinn77 12:9397a2bdfd28 31 deviceM.write(d2);
djinn77 12:9397a2bdfd28 32 ssel=1;
djinn77 12:9397a2bdfd28 33 deviceM.lock();
djinn77 12:9397a2bdfd28 34 };
djinn77 12:9397a2bdfd28 35
djinn77 12:9397a2bdfd28 36 void inicializar_matriz(){
djinn77 12:9397a2bdfd28 37 sendSPI(0x0c,1);
djinn77 12:9397a2bdfd28 38 sendSPI(0x0b,7);
djinn77 12:9397a2bdfd28 39 sendSPI(0x09,0); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
djinn77 12:9397a2bdfd28 40 sendSPI(0x0A,0x00); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
djinn77 12:9397a2bdfd28 41
djinn77 12:9397a2bdfd28 42 int i;
djinn77 12:9397a2bdfd28 43 for (i=0;i<2;i++){
djinn77 12:9397a2bdfd28 44 sendSPI(0x0F,1);
djinn77 12:9397a2bdfd28 45 wait (0.5);
djinn77 12:9397a2bdfd28 46 sendSPI(0x0F,0);
djinn77 12:9397a2bdfd28 47 wait (0.5);
djinn77 12:9397a2bdfd28 48 }
djinn77 12:9397a2bdfd28 49
djinn77 12:9397a2bdfd28 50 }
djinn77 12:9397a2bdfd28 51
djinn77 12:9397a2bdfd28 52
djinn77 12:9397a2bdfd28 53
djinn77 12:9397a2bdfd28 54 int main() {
djinn77 12:9397a2bdfd28 55
djinn77 12:9397a2bdfd28 56 inicializar_matriz();
djinn77 12:9397a2bdfd28 57 pc.baud(38400);
djinn77 12:9397a2bdfd28 58
djinn77 12:9397a2bdfd28 59 while(1){
djinn77 13:3c9081c62a99 60 /////////////////////////////////
djinn77 13:3c9081c62a99 61 for(int i= 1;i<=8;i++){
djinn77 13:3c9081c62a99 62 sendSPI(i, FIG_C[i-1]);
djinn77 13:3c9081c62a99 63
djinn77 13:3c9081c62a99 64 }
djinn77 13:3c9081c62a99 65 ///////////////////
djinn77 13:3c9081c62a99 66 wait(2.0);
djinn77 13:3c9081c62a99 67
djinn77 13:3c9081c62a99 68 int16_t MUL1 = FIG_C[0]& FIG_C[1]& FIG_C[2]& FIG_C[3];
djinn77 13:3c9081c62a99 69 int16_t MUL2 = FIG_C[4]& FIG_C[5]& FIG_C[6]& FIG_C[7];
djinn77 12:9397a2bdfd28 70
djinn77 13:3c9081c62a99 71
djinn77 13:3c9081c62a99 72 MUL1= MUL1&MUL2;
djinn77 13:3c9081c62a99 73
djinn77 13:3c9081c62a99 74 //////////////////////////
djinn77 13:3c9081c62a99 75 sendSPI(1, 0);
djinn77 13:3c9081c62a99 76 sendSPI(2, 0);
djinn77 13:3c9081c62a99 77 sendSPI(3, 0);
djinn77 13:3c9081c62a99 78 sendSPI(4, MUL1);
djinn77 13:3c9081c62a99 79 sendSPI(5, 0);
djinn77 13:3c9081c62a99 80 sendSPI(6, 0);
djinn77 13:3c9081c62a99 81 sendSPI(7, 0);
djinn77 13:3c9081c62a99 82 sendSPI(8, 0);
djinn77 13:3c9081c62a99 83 wait(1.0);
djinn77 13:3c9081c62a99 84 ///////////////////////////////
djinn77 13:3c9081c62a99 85
djinn77 13:3c9081c62a99 86
djinn77 13:3c9081c62a99 87 int16_t resta[8]={0};
djinn77 13:3c9081c62a99 88 int16_t memoria[8]={0};
djinn77 13:3c9081c62a99 89
djinn77 13:3c9081c62a99 90 for(int ki=0; ki<=7;ki++){
djinn77 13:3c9081c62a99 91
djinn77 13:3c9081c62a99 92 resta[ki]=FIG_C[ki]- MUL1;
djinn77 13:3c9081c62a99 93
djinn77 13:3c9081c62a99 94 }
djinn77 13:3c9081c62a99 95 ///////////////////////////////
djinn77 13:3c9081c62a99 96 for(int i= 1;i<=8;i++){
djinn77 13:3c9081c62a99 97 sendSPI(i, resta[i-1]);
djinn77 13:3c9081c62a99 98
djinn77 13:3c9081c62a99 99 }
djinn77 13:3c9081c62a99 100 wait(2.0);
djinn77 13:3c9081c62a99 101 /////////////////////////////////
djinn77 13:3c9081c62a99 102 int n=0;
djinn77 13:3c9081c62a99 103 int cot=0b00000001;
djinn77 13:3c9081c62a99 104
djinn77 13:3c9081c62a99 105 for(int l = 0; l<=7;l++){
djinn77 13:3c9081c62a99 106 if((cot<<l & MUL1) !=0){
djinn77 13:3c9081c62a99 107 n++;
djinn77 13:3c9081c62a99 108 }
djinn77 13:3c9081c62a99 109 }
djinn77 13:3c9081c62a99 110
djinn77 13:3c9081c62a99 111 for(int i= 1;i<=8;i++){
djinn77 13:3c9081c62a99 112
djinn77 13:3c9081c62a99 113 memoria[i-1]= 0;
djinn77 12:9397a2bdfd28 114
djinn77 13:3c9081c62a99 115 }
djinn77 13:3c9081c62a99 116
djinn77 13:3c9081c62a99 117 ////////////////
djinn77 13:3c9081c62a99 118 for(int i= 1;i<=8;i++){
djinn77 13:3c9081c62a99 119
djinn77 13:3c9081c62a99 120 memoria[i-1]= resta[i-1]>>n;
djinn77 13:3c9081c62a99 121
djinn77 13:3c9081c62a99 122 }
djinn77 13:3c9081c62a99 123 wait(0.2);
djinn77 13:3c9081c62a99 124 ////////////////////////////////
djinn77 13:3c9081c62a99 125 /*
djinn77 12:9397a2bdfd28 126 int A = 0b01110111;
djinn77 12:9397a2bdfd28 127 int B = 0b00011100;
djinn77 12:9397a2bdfd28 128 int C = A&B;
djinn77 12:9397a2bdfd28 129 int R= A-C;
djinn77 12:9397a2bdfd28 130 int cot=0b00000001;
djinn77 12:9397a2bdfd28 131
djinn77 12:9397a2bdfd28 132 int n=0;
djinn77 12:9397a2bdfd28 133
djinn77 12:9397a2bdfd28 134 for(int l = 0; l<=7;l++){
djinn77 12:9397a2bdfd28 135
djinn77 12:9397a2bdfd28 136 if((cot<<l & R) !=0){
djinn77 12:9397a2bdfd28 137 n++;
djinn77 12:9397a2bdfd28 138
djinn77 12:9397a2bdfd28 139 }
djinn77 12:9397a2bdfd28 140 }
djinn77 12:9397a2bdfd28 141 pc.printf("\n n %i\n ",n);
djinn77 12:9397a2bdfd28 142
djinn77 12:9397a2bdfd28 143 pc.printf("\n n-1 %i\n ",n);
djinn77 12:9397a2bdfd28 144
djinn77 12:9397a2bdfd28 145
djinn77 12:9397a2bdfd28 146 float acum=1;
djinn77 12:9397a2bdfd28 147 for(int t=1;t<=n;t++){
djinn77 12:9397a2bdfd28 148 acum*=2;
djinn77 12:9397a2bdfd28 149 }
djinn77 12:9397a2bdfd28 150 acum--;
djinn77 12:9397a2bdfd28 151
djinn77 12:9397a2bdfd28 152
djinn77 12:9397a2bdfd28 153
djinn77 12:9397a2bdfd28 154 pc.printf("\n k %i\n ",acum);
djinn77 12:9397a2bdfd28 155
djinn77 12:9397a2bdfd28 156 sendSPI(1, A);
djinn77 12:9397a2bdfd28 157 sendSPI(2, B);
djinn77 12:9397a2bdfd28 158 sendSPI(3, C);
djinn77 12:9397a2bdfd28 159 sendSPI(4, R);
djinn77 12:9397a2bdfd28 160 sendSPI(5, 0);
djinn77 12:9397a2bdfd28 161 sendSPI(6, cot);
djinn77 12:9397a2bdfd28 162 sendSPI(7, 0);
djinn77 12:9397a2bdfd28 163 sendSPI(8, acum);
djinn77 12:9397a2bdfd28 164 wait(vel);
djinn77 13:3c9081c62a99 165
djinn77 13:3c9081c62a99 166 */
djinn77 12:9397a2bdfd28 167
djinn77 12:9397a2bdfd28 168 }
djinn77 12:9397a2bdfd28 169
djinn77 12:9397a2bdfd28 170 }
djinn77 12:9397a2bdfd28 171
djinn77 12:9397a2bdfd28 172
djinn77 13:3c9081c62a99 173