Erick Barrera
/
matriz
matriz
b.h@0:d6fe56fdc91c, 2018-09-13 (annotated)
- Committer:
- Esbp10
- Date:
- Thu Sep 13 03:50:54 2018 +0000
- Revision:
- 0:d6fe56fdc91c
matriz;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Esbp10 | 0:d6fe56fdc91c | 1 | SPI deviceM(PB_15, PB_14, PB_13); |
Esbp10 | 0:d6fe56fdc91c | 2 | DigitalOut ssel (PB_12); |
Esbp10 | 0:d6fe56fdc91c | 3 | float Vel=0.8; |
Esbp10 | 0:d6fe56fdc91c | 4 | |
Esbp10 | 0:d6fe56fdc91c | 5 | void sendSPI(uint8_t d1, uint8_t d2) |
Esbp10 | 0:d6fe56fdc91c | 6 | { |
Esbp10 | 0:d6fe56fdc91c | 7 | deviceM.unlock(); |
Esbp10 | 0:d6fe56fdc91c | 8 | ssel=0; |
Esbp10 | 0:d6fe56fdc91c | 9 | deviceM.write(d1); |
Esbp10 | 0:d6fe56fdc91c | 10 | deviceM.write(d2); |
Esbp10 | 0:d6fe56fdc91c | 11 | ssel=1; |
Esbp10 | 0:d6fe56fdc91c | 12 | deviceM.lock(); |
Esbp10 | 0:d6fe56fdc91c | 13 | } |
Esbp10 | 0:d6fe56fdc91c | 14 | |
Esbp10 | 0:d6fe56fdc91c | 15 | void printMatrix(uint8_t* vC, uint8_t col) |
Esbp10 | 0:d6fe56fdc91c | 16 | { |
Esbp10 | 0:d6fe56fdc91c | 17 | int i; |
Esbp10 | 0:d6fe56fdc91c | 18 | int j=1; |
Esbp10 | 0:d6fe56fdc91c | 19 | int h=1; |
Esbp10 | 0:d6fe56fdc91c | 20 | for(i=1;i<=8;i++){ |
Esbp10 | 0:d6fe56fdc91c | 21 | if(*(vC+1)==0b00000000 && *(vC)==0b00000000){ |
Esbp10 | 0:d6fe56fdc91c | 22 | sendSPI(i,*(vC+2)>>col-1); |
Esbp10 | 0:d6fe56fdc91c | 23 | if(i>0){ |
Esbp10 | 0:d6fe56fdc91c | 24 | sendSPI(i-1,0); |
Esbp10 | 0:d6fe56fdc91c | 25 | } |
Esbp10 | 0:d6fe56fdc91c | 26 | wait(Vel); |
Esbp10 | 0:d6fe56fdc91c | 27 | } |
Esbp10 | 0:d6fe56fdc91c | 28 | else |
Esbp10 | 0:d6fe56fdc91c | 29 | { |
Esbp10 | 0:d6fe56fdc91c | 30 | if(i>1){ |
Esbp10 | 0:d6fe56fdc91c | 31 | j=i-2; |
Esbp10 | 0:d6fe56fdc91c | 32 | h=i-3; |
Esbp10 | 0:d6fe56fdc91c | 33 | if(*(vC)==0b00000000){ |
Esbp10 | 0:d6fe56fdc91c | 34 | j=i-1; |
Esbp10 | 0:d6fe56fdc91c | 35 | h=i; |
Esbp10 | 0:d6fe56fdc91c | 36 | } |
Esbp10 | 0:d6fe56fdc91c | 37 | sendSPI(i,*(vC)>>col-1); |
Esbp10 | 0:d6fe56fdc91c | 38 | sendSPI(j,*(vC+1)>>col-1); |
Esbp10 | 0:d6fe56fdc91c | 39 | sendSPI(h,*(vC+2)>>col-1); |
Esbp10 | 0:d6fe56fdc91c | 40 | if(i>2){ |
Esbp10 | 0:d6fe56fdc91c | 41 | sendSPI(i-3,0); |
Esbp10 | 0:d6fe56fdc91c | 42 | } |
Esbp10 | 0:d6fe56fdc91c | 43 | wait(Vel); |
Esbp10 | 0:d6fe56fdc91c | 44 | } |
Esbp10 | 0:d6fe56fdc91c | 45 | } |
Esbp10 | 0:d6fe56fdc91c | 46 | } |
Esbp10 | 0:d6fe56fdc91c | 47 | } |
Esbp10 | 0:d6fe56fdc91c | 48 | |
Esbp10 | 0:d6fe56fdc91c | 49 | void giro(uint8_t *f,uint8_t col,uint8_t gi) |
Esbp10 | 0:d6fe56fdc91c | 50 | { |
Esbp10 | 0:d6fe56fdc91c | 51 | uint8_t a[3]={0,0,0}; |
Esbp10 | 0:d6fe56fdc91c | 52 | int i; |
Esbp10 | 0:d6fe56fdc91c | 53 | int j; |
Esbp10 | 0:d6fe56fdc91c | 54 | switch(gi){ |
Esbp10 | 0:d6fe56fdc91c | 55 | case 0: |
Esbp10 | 0:d6fe56fdc91c | 56 | printMatrix(f,col); |
Esbp10 | 0:d6fe56fdc91c | 57 | break; |
Esbp10 | 0:d6fe56fdc91c | 58 | case 1: |
Esbp10 | 0:d6fe56fdc91c | 59 | for(j=0;j<3;j++){ |
Esbp10 | 0:d6fe56fdc91c | 60 | for(i=0;i<3;i++){ |
Esbp10 | 0:d6fe56fdc91c | 61 | a[i]=((((*(f+j))<<2-i)&0b10000000)>>j)+a[i]; |
Esbp10 | 0:d6fe56fdc91c | 62 | } |
Esbp10 | 0:d6fe56fdc91c | 63 | } |
Esbp10 | 0:d6fe56fdc91c | 64 | printMatrix(a,col); |
Esbp10 | 0:d6fe56fdc91c | 65 | break; |
Esbp10 | 0:d6fe56fdc91c | 66 | case 2: |
Esbp10 | 0:d6fe56fdc91c | 67 | for(j=0;j<3;j++){ |
Esbp10 | 0:d6fe56fdc91c | 68 | for(i=0;i<3;i++){ |
Esbp10 | 0:d6fe56fdc91c | 69 | a[i]=((((*(f+(2-i)))>>2-j)&0b00100000)<<j)+a[i]; |
Esbp10 | 0:d6fe56fdc91c | 70 | } |
Esbp10 | 0:d6fe56fdc91c | 71 | } |
Esbp10 | 0:d6fe56fdc91c | 72 | printMatrix(a,col); |
Esbp10 | 0:d6fe56fdc91c | 73 | break; |
Esbp10 | 0:d6fe56fdc91c | 74 | case 3: |
Esbp10 | 0:d6fe56fdc91c | 75 | for(j=0;j<3;j++){ |
Esbp10 | 0:d6fe56fdc91c | 76 | for(i=0;i<3;i++){ |
Esbp10 | 0:d6fe56fdc91c | 77 | a[i]=((((*(f+j))>>2-i)&(0b00100000))<<j)+a[i]; |
Esbp10 | 0:d6fe56fdc91c | 78 | } |
Esbp10 | 0:d6fe56fdc91c | 79 | } |
Esbp10 | 0:d6fe56fdc91c | 80 | printMatrix(a,col); |
Esbp10 | 0:d6fe56fdc91c | 81 | break; |
Esbp10 | 0:d6fe56fdc91c | 82 | default: |
Esbp10 | 0:d6fe56fdc91c | 83 | break; |
Esbp10 | 0:d6fe56fdc91c | 84 | } |
Esbp10 | 0:d6fe56fdc91c | 85 | } |