first commit
This commit is contained in:
206
EEPROM_TEST/EEPROM_TEST.ino
Executable file
206
EEPROM_TEST/EEPROM_TEST.ino
Executable file
@@ -0,0 +1,206 @@
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <Wire.h>
|
||||
#include "/home/souti/Arduino/EEPROM_TEST/eeprom.h"
|
||||
|
||||
|
||||
// IMPORTANT !!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
// finir toutes les lignes par \n
|
||||
// finir la page par \r
|
||||
|
||||
#define START_ADDRESS 831//memory address of the 1st stored byte
|
||||
long sum; //the sum of read values, updated in loop
|
||||
|
||||
//--------------------------------------------------------------
|
||||
|
||||
void setup(){
|
||||
|
||||
Serial.begin(9600);
|
||||
Wire.begin();
|
||||
|
||||
int addr = START_ADDRESS;
|
||||
addr = page(addr);
|
||||
Serial.println("Page 1 fin" + addr);
|
||||
addr = page2(addr);
|
||||
Serial.println("Page 2 fin" + addr);
|
||||
}
|
||||
//--------------------------------------------------------------
|
||||
|
||||
void loop(){
|
||||
|
||||
delay(3000);
|
||||
// désactivation plantage traitement trop long
|
||||
wdt_disable();
|
||||
|
||||
int addr = START_ADDRESS; //this will increment after each read
|
||||
char readChar;
|
||||
String numero2 ="";
|
||||
|
||||
for (int ii = 0; /*ii < 500*/; ii++) {
|
||||
addr += readObjectSimple(0x50, addr, readChar);
|
||||
|
||||
if (readChar == 10) {
|
||||
Serial.println(numero2);
|
||||
numero2="";
|
||||
}else {
|
||||
numero2+=readChar; //numero[ii];
|
||||
if (readChar == 13 || ii > 5000) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Réactivation
|
||||
wdt_enable(3000);
|
||||
|
||||
}
|
||||
|
||||
int writeString(int addr, String s) {
|
||||
for (int ii = 0; ii < s.length(); ii++) {
|
||||
addr += writeObjectSimple(0x50, addr,s.charAt(ii)); //caractere[ii]);
|
||||
Serial.print(s.charAt(ii));
|
||||
}
|
||||
return addr;
|
||||
}
|
||||
int page(int addr) {
|
||||
addr = writeString(addr, "<html>\n");
|
||||
addr = style(addr);
|
||||
addr = body(addr);
|
||||
addr = writeString(addr, "</html>\n\r");
|
||||
return addr;
|
||||
}
|
||||
|
||||
int page2(int addr) {
|
||||
addr = writeString(addr, "<html>\n");
|
||||
addr = style(addr);
|
||||
addr = body2(addr);
|
||||
addr = writeString(addr, "</html>\n\r");
|
||||
return addr;
|
||||
}
|
||||
|
||||
int body(int addr) {
|
||||
addr = writeString(addr, "<body>\n");
|
||||
addr = writeString(addr, "<form action='/ident' method='get'>\n");
|
||||
addr = writeString(addr, "<script type='text/javascript'>\nfunction showValue(newValue)\n{\ndocument.getElementById('text').innerHTML=newValue;\n}\n</script>\n");
|
||||
addr = writeString(addr, "<div>\n");
|
||||
addr = writeString(addr, "<label for='name'>SSID:</label>\n");
|
||||
addr = writeString(addr, "<input type='text' id='name' name='name' />\n");
|
||||
addr = writeString(addr, "</div>\n");
|
||||
addr = writeString(addr, "<div>\n");
|
||||
addr = writeString(addr, " <label for='pass'>Password:</label>\n");
|
||||
addr = writeString(addr, " <input type='password' id='pass' name='pass' />\n");
|
||||
addr = writeString(addr, "</div>\n");
|
||||
addr = writeString(addr, "<div>\n");
|
||||
addr = writeString(addr, " <label for='domo'>Domoticz:</label>\n");
|
||||
addr = writeString(addr, " <input type='text' id='domo' name='domo' />\n");
|
||||
addr = writeString(addr, " <label for='port'>Port:</label>\n");
|
||||
addr = writeString(addr, " <input type='text' id='port' name='port' />\n");
|
||||
addr = writeString(addr, "</div>\n");
|
||||
addr = writeString(addr, "<div>\n");
|
||||
addr = writeString(addr, " <label for='radi'>Id Radiateur:</label>\n");
|
||||
addr = writeString(addr, " <input type='radi' id='radi' name='radi' />\n");
|
||||
addr = writeString(addr, "</div>\n");
|
||||
addr = writeString(addr, "<div class='button'>\n");
|
||||
addr = writeString(addr, " <button name=H type='submit'>Ok</button>\n");
|
||||
addr = writeString(addr, "</div>\n");
|
||||
addr = writeString(addr, "</form>\n");
|
||||
addr = writeString(addr, "</body>\n");
|
||||
return addr;
|
||||
}
|
||||
|
||||
int body2(int addr) {
|
||||
addr = writeString(addr, "<body>\n");
|
||||
addr = writeString(addr, "<form action='/param' method='get'>\n");
|
||||
addr = writeString(addr, "<script type='text/javascript'>\nfunction showValue(newValue)\n{\ndocument.getElementById('text').innerHTML=newValue;\n}\n</script>\n");
|
||||
addr = writeString(addr, "<div>\n");
|
||||
addr = writeString(addr, "<label for='name'>ID Radiateur:</label>\n");
|
||||
addr = writeString(addr, "<input type='text' id='name' name='name' />\n");
|
||||
addr = writeString(addr, "</div>\n");
|
||||
addr = writeString(addr, "<div>\n");
|
||||
addr = writeString(addr, " <label for='pass'>Password:</label>\n");
|
||||
addr = writeString(addr, " <input type='password' id='pass' name='pass' />\n");
|
||||
addr = writeString(addr, "</div>\n");
|
||||
addr = writeString(addr, "<div>\n");
|
||||
addr = writeString(addr, " <label for='domo'>Domoticz:</label>\n");
|
||||
addr = writeString(addr, " <input type='text' id='domo' name='domo' />\n");
|
||||
addr = writeString(addr, " <label for='port'>Port:</label>\n");
|
||||
addr = writeString(addr, " <input type='text' id='port' name='port' />\n");
|
||||
addr = writeString(addr, "</div>\n");
|
||||
addr = writeString(addr, "<div class='button'>\n");
|
||||
addr = writeString(addr, " <button name=H type='submit'>Ok</button>\n");
|
||||
addr = writeString(addr, "</div>\n");
|
||||
addr = writeString(addr, "</form>\n");
|
||||
addr = writeString(addr, "</body>\n");
|
||||
return addr;
|
||||
}
|
||||
|
||||
int style(int addr) {
|
||||
|
||||
addr = writeString(addr, "<style>\n");
|
||||
addr = writeString(addr, "form {\n");
|
||||
addr = writeString(addr, " /* Just to center the form on the page */\n");
|
||||
addr = writeString(addr, " margin: 0 auto;\n");
|
||||
addr = writeString(addr, " width: 400px;\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, " /* To see the limits of the form */\n");
|
||||
addr = writeString(addr, " padding: 1em;\n");
|
||||
addr = writeString(addr, " border: 1px solid #CCC;\n");
|
||||
addr = writeString(addr, " border-radius: 1em;\n");
|
||||
addr = writeString(addr, "}\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, "div + div {\n");
|
||||
addr = writeString(addr, " margin-top: 1em;\n");
|
||||
addr = writeString(addr, "}\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, "label {\n");
|
||||
addr = writeString(addr, " /* To make sure that all label have the same size and are properly align */\n");
|
||||
addr = writeString(addr, " display: inline-block;\n");
|
||||
addr = writeString(addr, " width: 90px;\n");
|
||||
addr = writeString(addr, " text-align: right;\n");
|
||||
addr = writeString(addr, "}\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, "input, textarea {\n");
|
||||
addr = writeString(addr, " /* To make sure that all text field have the same font settings\n");
|
||||
addr = writeString(addr, " By default, textarea are set with a monospace font */\n");
|
||||
addr = writeString(addr, " font: 1em sans-serif;\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, " /* To give the same size to all text field */\n");
|
||||
addr = writeString(addr, " width: 300px;\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, " -moz-box-sizing: border-box;\n");
|
||||
addr = writeString(addr, " box-sizing: border-box;\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, " /* To harmonize the look & feel of text field border */\n");
|
||||
addr = writeString(addr, " border: 1px solid #999;\n");
|
||||
addr = writeString(addr, "}\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, "input:focus, textarea:focus {\n");
|
||||
addr = writeString(addr, " /* To give a little highligh on active elements */\n");
|
||||
addr = writeString(addr, " border-color: #000;\n");
|
||||
addr = writeString(addr, "}\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, "textarea {\n");
|
||||
addr = writeString(addr, " /* To properly align multiline text field with their label */\n");
|
||||
addr = writeString(addr, " vertical-align: top;\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, " /* To give enough room to type some text */\n");
|
||||
addr = writeString(addr, " height: 5em;\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, " /* To allow users to resize any textarea vertically\n");
|
||||
addr = writeString(addr, " It works only on Chrome, Firefox and Safari */\n");
|
||||
addr = writeString(addr, " resize: vertical;\n");
|
||||
addr = writeString(addr, "}\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, ".button {\n");
|
||||
addr = writeString(addr, " /* To position the buttons to the same position of the text fields */\n");
|
||||
addr = writeString(addr, " padding-left: 90px; /* same size as the label elements */\n");
|
||||
addr = writeString(addr, "}\n");
|
||||
addr = writeString(addr, "\n");
|
||||
addr = writeString(addr, "button {\n");
|
||||
addr = writeString(addr, " /* This extra magin represent the same space as the space between\n");
|
||||
addr = writeString(addr, " the labels and their text fields */\n");
|
||||
addr = writeString(addr, " margin-left: .5em;\n");
|
||||
addr = writeString(addr, "}\n");
|
||||
addr = writeString(addr, "</style>\n");
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
50
EEPROM_TEST/eeprom.h
Executable file
50
EEPROM_TEST/eeprom.h
Executable file
@@ -0,0 +1,50 @@
|
||||
#ifndef EEPROM_ROUTINES
|
||||
#define EEPROM_ROUTINES
|
||||
|
||||
#if defined(ARDUINO) && ARDUINO >= 100
|
||||
#include "Arduino.h"
|
||||
#else
|
||||
#include "WProgram.h"
|
||||
#endif
|
||||
#include <Wire.h>
|
||||
|
||||
template <class T>
|
||||
uint16_t writeObjectSimple(uint8_t i2cAddr, uint16_t addr, const T& value){
|
||||
|
||||
const uint8_t* p = (const uint8_t*)(const void*)&value;
|
||||
uint16_t i;
|
||||
for (i = 0; i < sizeof(value); i++){
|
||||
Wire.beginTransmission(i2cAddr);
|
||||
Wire.write((uint16_t)(addr >> 8)); // MSB
|
||||
Wire.write((uint16_t)(addr & 0xFF));// LSB
|
||||
Wire.write(*p++);
|
||||
Wire.endTransmission();
|
||||
addr++;
|
||||
delay(5); //max time for writing in 24LC256
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
|
||||
|
||||
template <class T>
|
||||
uint16_t readObjectSimple(uint8_t i2cAddr, uint16_t addr, T& value){
|
||||
|
||||
uint8_t* p = (uint8_t*)(void*)&value;
|
||||
uint8_t objSize = sizeof(value);
|
||||
uint16_t i;
|
||||
for (i = 0; i < objSize; i++){
|
||||
Wire.beginTransmission (i2cAddr);
|
||||
Wire.write((uint16_t)(addr >> 8)); // MSB
|
||||
Wire.write((uint16_t)(addr & 0xFF));// LSB
|
||||
Wire.endTransmission();
|
||||
Wire.requestFrom(i2cAddr, (uint8_t)1);
|
||||
if(Wire.available()){
|
||||
*p++ = Wire.read();
|
||||
}
|
||||
addr++;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user