Portál AbcLinuxu, 11. listopadu 2025 06:53
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.