Ich habe nun mit dem angehängten Programm versucht nur die Speicheradresse 0x240C zu ändern. Wenn ich aber den Wert (das Array) ausgebe, so fängt er wieder mit denselben Werten an wie früher, als ich als Speicheradresse 0x8000 angegeben habe und zwar beginnend mit 9 172 27039 0 ... 0 6657 0 0
Er sollte doch bei 0x240C beim Wert 6657 beginnen?
Danke. Also wurden doch die Werte/der Wert mit meinem Arduino-Programm ins EEPROM auf 0x240C geschrieben aber da ich keinen POR machte nicht ins Register geschrieben. Deshalb lese ich dort noch den alten Wert...
Reicht für den POR einfach die Spannungsversorgung kurz unterbrechen?
... ich reime weiter ...
Wenn die Kamera (ich lerne dazu) diese Möglichkeit bietet, Werte so zu übertragen, wird Sie auch die Möglichkeit bieten, Sich per Befehl resetten zu lassen.
Und wenn nicht: Auch Das steht im Datenblatt, wie man die Werte in die Kamera reinbekomme, daß Die sogar angewendet werden.
const uint16_t len = 16;
uint16_t adr = 0x8000;
uint16_t Buffer[len];
#include <Wire.h>
#include "MLX90640_API.h"
#include "MLX90640_I2C_Driver.h"
void setup() {
// put your setup code here, to run once:
Wire.begin();
Wire.setClock(400000); //Increase I2C clock speed to 400kHz
Serial.begin(9600);
MLX90640_I2CRead(0x33, adr, len, Buffer);
for (int n = 0; n < len; n++)
{
Serial.print(n); Serial.print(": "); Serial.println(Buffer[n], HEX);
}
MLX90640_I2CWrite(0x33, 0x800D, 6401); // HEX 1901
//MLX90640_I2CWrite(0x33, 0x800D, 6657); // HEX 1A01
delay(4000);
MLX90640_I2CRead(0x33, adr, len, Buffer);
for (int n = 0; n < len; n++)
{
Serial.print(n); Serial.print(": "); Serial.println(Buffer[n], HEX);
}
}
void loop() {
// put your main code here, to run repeatedly:
}
Damit kann ich nun den Wert an der Adresse 0x800D von 1901 (HEX) nach 1A01 (HEX) und umgekehrt ändern...
An der Temperaturausgabe (erhalte nach wie vor die Temperaturen "nan") ändert dies aber noch nichts...
Für mich ergeben sich aber folgende Frage:
Warum habe ich beim Schreiben mittels MLX90640_I2CWrite(0x33, 0x800D, 6401); // HEX 1901
direkt die Adessse 0x800D ansprechen müssen und nicht die mit dieser verknüpfte Adresse 0x200C?