#include <EEPROM.h>
void setup() {
// Inicijaliziraj serijski port
Serial.begin(9600);
// Definiraj decimalni broj koji želiš pohraniti
float decimalNumber = 123.456;
// Ovdje možeš promijeniti broj
// Pohranjuj float kao niz bajtova u EEPROM
byte *p = (byte *)(void *)&decimalNumber; // Prebaci adresu float u byte pointer
for (int i = 0; i < sizeof(decimalNumber); i++) {
EEPROM.write(i, *(p + i)); // Pohrani svaki bajt u EEPROM
}
// Čitaj float iz EEPROM-a
float readValue;
byte *q = (byte *)(void *)&readValue; // Prebaci adresu float u byte pointer
for (int i = 0; i < sizeof(readValue); i++) {
*(q + i) = EEPROM.read(i); // Pročitaj svaki bajt iz EEPROM
}
// Ispis
Serial.print("Decimal number: ");
Serial.println(readValue);
// Ispis bitova
Serial.print("Bits: ");
for (int i = 31; i >= 0; i--) {
Serial.print(((unsigned long)&readValue >> i) & 0x01);
}
Serial.println(); // Nova linija nakon ispisivanja bitova
}
void loop() {
// Prazno, ništa ne radimo u loop-u
}
Indicated where to put the decimal... calculating the bit result (00000000000000000000100011110100) yields 2292(10)
Program sprema određeni decimalni broj u EEPROM memoriju te ga ispisuje bajt po bajt.
#include <EEPROM.h>
// Promjenljiva za pohranu decimalnog broja
float broj = 123.456; // primjer decimalnog broja
int adresa = 0;
// Početna adresa u EEPROM-u za pohranu broja
void setup () {
Serial.begin(9600);
// Spremanje broja u EEPROM
EEPROM.put(adresa, broj);
Serial.println("Broj je pohranjen u EEPROM.");
// Čekaj da korisnik može pročitati poruku u Serial Monitoru
delay(1000);
// Čitanje broja bajt po bajt
Serial.println("Ispis broja iz EEPROM-a bajt po bajt:");
for (int i = 0; i < sizeof(broj); i++) {
byte vrijednost = EEPROM.read(adresa + i);
Serial.print("Bajt ");
Serial.print(i);
Serial.print(": ");
Serial.println(vrijednost, HEX);
// Ispis u heksadecimalnom obliku
}
}
void loop () {
// Ovdje ne radimo ništa
}
Indicated where to put the decimal... calculating the byte result (79 e9 f6 42) yields 2045376066(10)