při vyčítání paměti mi to vypíše pouze samé FF, ale v paměti jsou na 100% data.
Netuší někdo co dělám špatně ? Už si nad tím lámu hlavu dlouho
Tady je kód pro vyčtení paměti. EEPROM vyčítám pomocí adaptéru, tudíž nepájím. A pokud adapér nazpojím na paměť místo FF mi to hodí samé 000.
Kód: Vybrat vše
#include <SPI.h>
#define csPIN 10
#define VELIKOST 512
#define cti 3
int8_t intValueOfHexaKey(char c)
{
if ((c >= '0') && (c <= '9')) return c - '0';
if ((c >= 'A') && (c <= 'F')) return c - 'A' + 10;
return -1;
}
uint8_t readByteAt(uint8_t cs,uint16_t adr){
SPI.beginTransaction(SPISettings(4000000,MSBFIRST,SPI_MODE0));
digitalWrite(cs,LOW);
uint8_t b=highByte(adr);
b = b <<3; //move address bit 8 to bit 11
b = b | cti; // read command
SPI.transfer(b); // send cmd + address bit 8
SPI.transfer(lowByte(adr)); // low byte of address
b= SPI.transfer(0); // read the actual byte
digitalWrite(cs,HIGH);
SPI.endTransaction();
return b;
}
void setup() {
Serial.begin(9600);
digitalWrite(csPIN,HIGH);
pinMode(csPIN,OUTPUT);
SPI.begin();
Serial.print("napiš 1 pro vyčení dat");
}
void loop() {
if(Serial.available() > 0)
{
char letter = Serial.read();
if(letter == '1')
{
char ch[30];
for (uint16_t i=0;i<VELIKOST;i++){
sprintf(ch,"%02X",readByteAt(csPIN,i));
Serial.print(ch);
}
}
}
}