SPI Flash AT45DBXXXD

Fork of at45db161d by Suga koubou

Revision:
8:1ec3997fe258
Parent:
7:2f9d8b47704f
Child:
9:8b1cf34d290e
diff -r 2f9d8b47704f -r 1ec3997fe258 at45db161d.cpp
--- a/at45db161d.cpp	Fri Mar 06 15:47:44 2015 +0800
+++ b/at45db161d.cpp	Fri Mar 06 19:54:06 2015 +0800
@@ -127,33 +127,31 @@
     }
 }
 
-void ATD45DB161D::read(uint16_t addr, void *ptr, uint16_t len) {
+void ATD45DB161D::readBuffer(uint16_t page, void *ptr, uint16_t len) {
     uint8_t *buf = reinterpret_cast<uint8_t*>(ptr);
     uint16_t i;
     while (len > 0) {
-        PageToBuffer(addr / _info.pageSize, 1);
-        BufferRead(1, addr % _info.pageSize, 1);
+        PageToBuffer(page++, 1);
+        BufferRead(1, 0, 1);
         uint16_t wlen = (_info.pageSize < len ? _info.pageSize : len);
         for (i = 0; i < wlen; i++) {
             *buf++ = _spi->write(0xff);
         }
         len -= wlen;
-        addr += _info.pageSize;
     }
 }
 
-void ATD45DB161D::write(uint16_t addr, void *ptr, uint16_t len) {
+void ATD45DB161D::writeBuffer(uint16_t page, void *ptr, uint16_t len) {
     uint8_t *buf = reinterpret_cast<uint8_t*>(ptr);
     uint16_t i;
     while (len > 0) {
-        BufferWrite(2, addr % _info.pageSize);
+        BufferWrite(2, 0);
         uint16_t wlen = (_info.pageSize < len ? _info.pageSize : len);
         for (i = 0; i < wlen; i++) {
             _spi->write(*buf++);
         }
-        BufferToPage(2, addr / _info.pageSize, 1);
+        BufferToPage(2, page++, 1);
         len -= wlen;
-        addr += _info.pageSize;
     }
 }