Yoshihiro TSUBOI
/
GT20L16J1Y_access_sample
Just read 0x3107 font data and write to UART
main.cpp@0:7d7bf32b3ba9, 2013-07-04 (annotated)
- Committer:
- ytsuboi
- Date:
- Thu Jul 04 15:26:03 2013 +0000
- Revision:
- 0:7d7bf32b3ba9
First version.
Who changed what in which revision?
User | Revision | Line number | New 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 | } |