- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 44

Thema: EEPROM - ausgelesener Wert ist ungenau

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Zitat Zitat von basteluwe Beitrag anzeigen
    - frequency ist int
    - ich denke, radio.getFrequency() liefert ebenfalls int
    der Typ ist uint16_t, also Integer (unsigned, wenn ich nicht irre)


    Auszug aus radio.h:

    /// Frequency data type.
    /// Only 16 bits are used for any frequency value (not the real one)
    typedef uint16_t RADIO_FREQ;


    Deine Typdefinition ist: int frequency;
    Darin lassen sich Frequenzen von 0 bis 32767 speichern, bzw. 327,67MHz. Wegen dem Vorzeichen.
    Geliefert wird aus der Bilbliothek ohne Vorzeichen.
    Besser wäre, um Folgefehler und Denkakrobatik zu vermeiden: unsigned int frequency;

    Solang Du über die 327MHz nicht hinaus kommst, sollte es aber kein Problem damit geben.


    Wenn Du so machst:

    storeFreq = EEPROM.read(0); // Speicherwert für Frequenz aus EEPROM holen
    frequency = (storeFreq + 825)*10; // Frequenzwert zu int für Radio-Chip wandeln


    kommst Du auf Frequenzen bis 108,00MHz.


    Hier sollte dann aber eine Warnung kommen: radio.setFrequency(frequency);
    Weil der von Dir verwendete Datentyp nicht übereinstimmt. Macht aber nichts, solang das Vorzeichenbit nicht gesetzt ist.


    Hier erzeugst Du ein Problem: storeFreq = (frequency/10)-825; // Frequenz in Speicherwert (byte) umrechnen
    Wenn Du fiktiv 10625 durch 10 teilst, bleiben 1062 übrig, dann -825 = 237. Du speicherst damit letztlich 106,20MHz statt 106,25MHz.

    MfG
    Moppi
    Geändert von Moppi (09.10.2018 um 07:51 Uhr)

Ähnliche Themen

  1. [ERLEDIGT] I2C Wert nach EEPROM 24C512 schreiben
    Von Bot-Builder im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 13.03.2013, 08:34
  2. Edit: Wie Wert in EEPROM speichern?
    Von Maxxtro im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 24
    Letzter Beitrag: 23.02.2009, 10:03
  3. Bicore - ungenau
    Von boarter im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 29.06.2008, 01:15
  4. HEX Wert aus EEprom BINär umwandeln PICBASIC
    Von Robbersoft im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 19.08.2007, 00:34
  5. Float Wert in EEPROM schreiben
    Von AlexAtRobo im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 26.06.2006, 22:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen