Zdravim, nebyl by nějaký odkaz na hezké čtení o paměti? Ne o té mojí, ta je zatím v pořádku. Chtěl bych pochopit proč se můj program chová „divně“.
Jen pro představu:
Mám Arduino Mega + GSM modul, dělám běžný GPRS terminál, nic náročného…
po vymazaní pole char pomoci memset se mi někdy změní hodnoty long úplně jiných proměnných…
priklad:
unsigned long lLed13Cas = 0;
unsigned long lIntervalSendCas = 0;
char odpoved[100];
//spousta dalsich
//(27) promennych char, String, long, int, boolean…
void loop {
lLed13Cas = millis();
lIntervalSendCas = millis();
Serial.println(lIntervalSend); // tady je hodnota millis() např. 1000
memset(odpoved, ‚\0‘, 100); // tady se něco stane
Serial.println(lIntervalSend); // tady je hodnota 741029368 nebo 809041862
}
Nějak tomu nerozumim…
chvilku jsem sis tím hrál, když pole definuju a měním tak:
– char[30] je ok,
– char[60] stane se to vyjmečně
– char[100] obvykle
– char[1000] smaže úplně všechny proměnné
když to vykompiluju hlásí mi to, že proměnné zabírají 37% paměti, řekl bych tedy, že tam je ještě spousta místa. A za druhé proč mi to mění pouze 2 longy ve kterých je hodnota millis() a nic jiného?
Nebo má to moje arduino něco „divně“ s pamětí?
Díky