Romilly Cocking
/
Ser23K256
Library to drive the Microchip 23K256 SRAM over SPI.
Revision 0:318f4f480b1b, committed 2010-08-14
- Comitter:
- romilly
- Date:
- Sat Aug 14 20:15:08 2010 +0000
- Child:
- 1:28eb43851e6e
- Commit message:
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Aug 14 20:15:08 2010 +0000 @@ -0,0 +1,72 @@ +#include "mbed.h" + +DigitalOut ncs(p14); + +SPI spi(p5,p6,p7); + +void on() { + ncs = 0; +} + +void off() { + ncs = 1; +} + +void write(int address, char byte) { + on(); + spi.write(0x02); // write data + spi.write(address >> 8); + spi.write(address & 0xFF); + spi.write(byte); + off(); +} + + +void write(int address, char * buffer, int count) { + on(); + spi.write(0x01); // write status + spi.write(0x40); // sequential mode + off(); + on(); + spi.write(0x02); + spi.write(address >> 8); + spi.write(address & 0xFF); + for (int i = 0; i < count; i++) { + spi.write(buffer[i]); + } + off(); + on(); + spi.write(0x01); // write status + spi.write(0x0); // byte mode + off(); +} + + +char read(int address) { + on(); + spi.write(0x03); + spi.write(address >> 8); + spi.write(address & 0xFF); + int result = spi.write(0); + off(); + return (char) result; +} + +int main() { + off(); + char buff[50]; + write(0, 'h'); + write(1, 'i'); + write(2, '!'); + write(3, '\0'); + for (int address = 0; address < 4; address++) { + buff[address] = read(address); + } + printf("mem = %s\r\n", buff); + write(0, "Hello world!",12); + for (int address = 0; address < 12; address++) { + buff[address] = read(address); + } + buff[12]='\0'; + printf("now = %s\r\n", buff); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sat Aug 14 20:15:08 2010 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/9114680c05da