23LC1024 SRAM Library

Hi Rob,

I have tried to implement the changes you suggested but came unravelled with type casting byte to char in the SpiRAM::readByte & SpiRAM::writeByte routines. I appear to have sussed the readByte but have no idea how to fix writeByte. Any ideas?
I have managed to get both the readByte & writeByte sorted and have renamed the readBytes/writeBytes to readBuffer/writeBuffer. All the tests seem to work okay apart from readBuffer that causes some strange corruption. It's probably something simple I'm missing as the memory seems to be written correctly but reading it back goes wrong. I had to attach a screen grab as cut & paste does not show the corruption.

Tests Begin.

Fill Memory with 0xFF.

0:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
A:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
14:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
1E:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
28:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
32:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
3C:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
46:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
50:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
5A:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  

FF96:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
FFA0:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
FFAA:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
FFB4:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
FFBE:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
FFC8:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
FFD2:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
FFDC:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
FFE6:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
FFF0:	FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  

Fill Memory with 0xAA.

0:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
A:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
14:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
1E:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
28:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
32:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
3C:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
46:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
50:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
5A:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  

FF96:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
FFA0:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
FFAA:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
FFB4:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
FFBE:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
FFC8:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
FFD2:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
FFDC:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
FFE6:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  
FFF0:	AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  

Fill Memory with Buffer.

0:	41  42  43  44  45  46  47  48  49  4A  
A:	41  42  43  44  45  46  47  48  49  4A  
14:	41  42  43  44  45  46  47  48  49  4A  
1E:	41  42  43  44  45  46  47  48  49  4A  
28:	41  42  43  44  45  46  47  48  49  4A  
32:	41  42  43  44  45  46  47  48  49  4A  
3C:	41  42  43  44  45  46  47  48  49  4A  
46:	41  42  43  44  45  46  47  48  49  4A  
50:	41  42  43  44  45  46  47  48  49  4A  
5A:	41  42  43  44  45  46  47  48  49  4A  

FF96:	41  42  43  44  45  46  47  48  49  4A  
FFA0:	41  42  43  44  45  46  47  48  49  4A  
FFAA:	41  42  43  44  45  46  47  48  49  4A  
FFB4:	41  42  43  44  45  46  47  48  49  4A  
FFBE:	41  42  43  44  45  46  47  48  49  4A  
FFC8:	41  42  43  44  45  46  47  48  49  4A  
FFD2:	41  42  43  44  45  46  47  48  49  4A  
FFDC:	41  42  43  44  45  46  47  48  49  4A  
FFE6:	41  42  43  44  45  46  47  48  49  4A  
FFF0:	41  42  43  44  45  46  47  48  49  4A  

Read Buffer.
ABCDEFG??
FGHIJABC?

Write byte.

0:	0  0  0  0  0  0  0  0  0  0  
A:	1  1  1  1  1  1  1  1  1  1  
14:	2  2  2  2  2  2  2  2  2  2  
1E:	3  3  3  3  3  3  3  3  3  3  
28:	4  4  4  4  4  4  4  4  4  4  
32:	5  5  5  5  5  5  5  5  5  5  
3C:	6  6  6  6  6  6  6  6  6  6  
46:	7  7  7  7  7  7  7  7  7  7  
50:	8  8  8  8  8  8  8  8  8  8  
5A:	9  9  9  9  9  9  9  9  9  9  

FF96:	F  F  F  F  F  F  F  F  F  F  
FFA0:	10  10  10  10  10  10  10  10  10  10  
FFAA:	11  11  11  11  11  11  11  11  11  11  
FFB4:	12  12  12  12  12  12  12  12  12  12  
FFBE:	13  13  13  13  13  13  13  13  13  13  
FFC8:	14  14  14  14  14  14  14  14  14  14  
FFD2:	15  15  15  15  15  15  15  15  15  15  
FFDC:	16  16  16  16  16  16  16  16  16  16  
FFE6:	17  17  17  17  17  17  17  17  17  17  
FFF0:	18  18  18  18  18  18  18  18  18  18  

Tests Finished.

SpiRAM_Test.ino (2.22 KB)

SpiRAM.h (1.37 KB)

SpiRAM.cpp (1.55 KB)

Clipboard-1.jpg