driver for 8x8

Dependents:   poster8x8_ranger

Committer:
cstevens
Date:
Tue Jun 14 13:33:56 2016 +0000
Revision:
0:12e8e6371165
libvrary to drive an 8x8 led matrix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cstevens 0:12e8e6371165 1 #include "8x8.h"
cstevens 0:12e8e6371165 2
cstevens 0:12e8e6371165 3 #include "smiles.h"
cstevens 0:12e8e6371165 4
cstevens 0:12e8e6371165 5 //define 2 buses for the row and column pins
cstevens 0:12e8e6371165 6 BusOut Row(PTC11,PTC10,PTC3,PTB10,PTC0,PTE2,PTE3,PTC5);
cstevens 0:12e8e6371165 7
cstevens 0:12e8e6371165 8 BusOut Col(PTC7,PTC6,PTB8,PTC4,PTE5,PTB9,PTE4,PTB11);
cstevens 0:12e8e6371165 9
cstevens 0:12e8e6371165 10 // sub to write character to the 8x8 display once - has to be repeated to keep display live
cstevens 0:12e8e6371165 11 int write_8x8(int eye,int mth)
cstevens 0:12e8e6371165 12 {
cstevens 0:12e8e6371165 13 int rw,i;
cstevens 0:12e8e6371165 14 //write eyes
cstevens 0:12e8e6371165 15 for(i=0; i<4; i++) {
cstevens 0:12e8e6371165 16 rw=0;
cstevens 0:12e8e6371165 17 rw=1<<i;
cstevens 0:12e8e6371165 18 Row=~rw; // this inverts the row code so that only the desired row is low
cstevens 0:12e8e6371165 19 Col=eyes[i+4*eye];
cstevens 0:12e8e6371165 20 wait(0.002);
cstevens 0:12e8e6371165 21
cstevens 0:12e8e6371165 22 }//endfori
cstevens 0:12e8e6371165 23 //write mouth
cstevens 0:12e8e6371165 24 for(i=4; i<8; i++) {
cstevens 0:12e8e6371165 25 rw=0;
cstevens 0:12e8e6371165 26 rw=1<<i;
cstevens 0:12e8e6371165 27 Row=~rw; // this inverts the row code so that only the desired row is low
cstevens 0:12e8e6371165 28 Col=mouth[i-4+4*mth];
cstevens 0:12e8e6371165 29 wait(0.002);
cstevens 0:12e8e6371165 30
cstevens 0:12e8e6371165 31 }//endfori
cstevens 0:12e8e6371165 32
cstevens 0:12e8e6371165 33
cstevens 0:12e8e6371165 34
cstevens 0:12e8e6371165 35
cstevens 0:12e8e6371165 36 return(0);
cstevens 0:12e8e6371165 37 }