Just read 0x3107 font data and write to UART

Dependencies:   mbed

Committer:
ytsuboi
Date:
Thu Jul 04 15:26:03 2013 +0000
Revision:
0:7d7bf32b3ba9
First version.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ytsuboi 0:7d7bf32b3ba9 1 #include "mbed.h"
ytsuboi 0:7d7bf32b3ba9 2
ytsuboi 0:7d7bf32b3ba9 3 SPI spi(p5, p6, p7); // mosi, miso, sclk
ytsuboi 0:7d7bf32b3ba9 4 Serial pc(USBTX, USBRX);
ytsuboi 0:7d7bf32b3ba9 5 DigitalOut cs(p8);
ytsuboi 0:7d7bf32b3ba9 6
ytsuboi 0:7d7bf32b3ba9 7 int main() {
ytsuboi 0:7d7bf32b3ba9 8 unsigned char MSB,LSB;
ytsuboi 0:7d7bf32b3ba9 9 unsigned long Address;
ytsuboi 0:7d7bf32b3ba9 10 unsigned char tempdata;
ytsuboi 0:7d7bf32b3ba9 11 unsigned char matrixdata[32];
ytsuboi 0:7d7bf32b3ba9 12 MSB = 0x31;
ytsuboi 0:7d7bf32b3ba9 13 LSB = 0x07;
ytsuboi 0:7d7bf32b3ba9 14 if(MSB >=1 && MSB <= 15 && LSB >=1 && LSB <= 94)
ytsuboi 0:7d7bf32b3ba9 15 Address =( (MSB - 1) * 94 + (LSB - 01))*32;
ytsuboi 0:7d7bf32b3ba9 16 else if(MSB >=16 && MSB <= 47 && LSB >=1 && LSB <= 94)
ytsuboi 0:7d7bf32b3ba9 17 Address =( (MSB - 16) * 94 + (LSB - 1))*32+43584;
ytsuboi 0:7d7bf32b3ba9 18 else if(MSB >=48 && MSB <=84 && LSB >=1 && LSB <= 94)
ytsuboi 0:7d7bf32b3ba9 19 Address = ((MSB - 48) * 94 + (LSB - 1))*32+ 138463;
ytsuboi 0:7d7bf32b3ba9 20 else if(MSB ==85 && LSB >=0x01 && LSB <= 94)
ytsuboi 0:7d7bf32b3ba9 21 Address = ((MSB - 85) * 94 + (LSB - 1))*32+ 246944;
ytsuboi 0:7d7bf32b3ba9 22 else if(MSB >=88 && MSB <=89 && LSB >=1 && LSB <= 94)
ytsuboi 0:7d7bf32b3ba9 23 Address = ((MSB - 88) * 94 + (LSB - 1))*32+ 249952;
ytsuboi 0:7d7bf32b3ba9 24
ytsuboi 0:7d7bf32b3ba9 25 // Deselect the device
ytsuboi 0:7d7bf32b3ba9 26 cs = 1;
ytsuboi 0:7d7bf32b3ba9 27 // Setup the spi for 8 bit data, high steady state clock
ytsuboi 0:7d7bf32b3ba9 28 spi.format(8,3);
ytsuboi 0:7d7bf32b3ba9 29 spi.frequency(1000000);
ytsuboi 0:7d7bf32b3ba9 30
ytsuboi 0:7d7bf32b3ba9 31 // Select the device by seting chip select low
ytsuboi 0:7d7bf32b3ba9 32 cs = 0;
ytsuboi 0:7d7bf32b3ba9 33 spi.write(0x03); // Read data byte
ytsuboi 0:7d7bf32b3ba9 34 Address =( (MSB - 1) * 94 + (LSB - 01))*32;
ytsuboi 0:7d7bf32b3ba9 35 spi.write(Address>>16 & 0xff);
ytsuboi 0:7d7bf32b3ba9 36 spi.write(Address>>8 & 0xff);
ytsuboi 0:7d7bf32b3ba9 37 spi.write(Address & 0xff);
ytsuboi 0:7d7bf32b3ba9 38 // Send a dummy byte to receive the contents of the WHOAMI register
ytsuboi 0:7d7bf32b3ba9 39 for(int i=0;i<32;i++)
ytsuboi 0:7d7bf32b3ba9 40 {
ytsuboi 0:7d7bf32b3ba9 41 tempdata=spi.write(0x00);
ytsuboi 0:7d7bf32b3ba9 42 matrixdata[i]=(255-tempdata);
ytsuboi 0:7d7bf32b3ba9 43 pc.printf("0x%x\r\n", tempdata);
ytsuboi 0:7d7bf32b3ba9 44 wait(0.01);
ytsuboi 0:7d7bf32b3ba9 45 }
ytsuboi 0:7d7bf32b3ba9 46 // Deselect the device
ytsuboi 0:7d7bf32b3ba9 47 cs = 1;
ytsuboi 0:7d7bf32b3ba9 48 }