Portál AbcLinuxu, 13. května 2025 18:28
Mam v Arduinu nasledujici program:
/* ARDUINO.pde */ #include <EEPROM.h> #define VELIKOST_EEPROM 511 int led = 13; /* -------------------------------------------------------------- */ void setup(void) { Serial.begin(9600); pinMode(led, OUTPUT); digitalWrite(led, LOW); } /* -------------------------------------------------------------- */ void loop(void) { char nacteno = ' '; if (Serial.available() > 0) { nacteno = cti(); switch (nacteno) { case 'B': // blikat LED digitalWrite(led, HIGH); delay(1000); // [ms] digitalWrite(led, LOW); delay(1000); Serial.print("OK\n"); break; case 'S': // smazat EEPROM EEPROMsmazat(); Serial.print("OK\n"); break; case 'U': // nahrat EEPROM z PC EEPROMulozit(); Serial.print("OK\n"); break; default: Serial.print("?\n"); break; } } } /* -------------------------------------------------------------- */ char cti(void) { while( !Serial.available() ); return Serial.read(); } /* -------------------------------------------------------------- */ void EEPROMsmazat() { for (int i = 0; i < VELIKOST_EEPROM; i++) EEPROM.write(i, 0); } /* -------------------------------------------------------------- */ void EEPROMulozit() { EEPROMsmazat(); char temp; for (int i = 0; i < VELIKOST_EEPROM; i++) { temp = cti(); EEPROM.write(i, temp); } } /* -------------------------------------------------------------- */
Pres seriovy port tam poslu znak a podle toho se vykona prislusna akce.
Kdyz ale potrebuju nahrat data z PC do EEPROM, tak se to ulozi spatne. (obrazky v priloze) Kdyz z PC poslu FF (255) tak se to neulozi na adresu 0, ale na adresy 0 a 1 na kazdou jedno F.
Daji se ty znaky nejak spojit do jednoho retezce a ulozit na jednu adresu?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.