Hi guys , when using the routines , i found that i often use "data_length" varable to reflect the TOTAL amount of bytes used in the buffer , eg datalength = 32 , thus the data buffer should have 32 bytes ,
but the Flash_comand routine code uses " for 0 to Data_length , thus the buffer need to have 33 bytes of valid data , in this example
As a result the code changes to
" for 0 to Data_length-1"
ammed to
"Code:For SDC_index = 0 To Data_Length-1 ' DATA LENGTH -1 COS 0 USED if SDC_cmd <= 2 then ' if write or Write register then SDC_data_out = SDC_buffer[SDC_index] ' send contents of indexed SDC_buffer gosub Flash_SPIw ' write byte SDC_data_in from SPI bus. Returns SDC_data_in. endif if SDC_cmd =>6 and SDC_cmd <=9 then ' if 6= read signature byte, 7=read data normalspeed, 8= read data at Highspeed , 9=read ID gosub Flash_SPIR ' Read Byte SDC_data_in from SPI bus. Returns SDC_data_in. SDC_buffer[SDC_index] = SDC_data_in endif Next SDC_index




Bookmarks