12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #ifdef __AVR_ATtiny84__
- #define BAUDRATE 9600
- #endif
- #ifdef __AVR_ATmega328P__
- #define BAUDRATE 57600
- #endif
- void serialPrg() {
- int value1, value2, value3, value4;
- byte value;
- bool endOfPrg = false;
- addr = 0;
- Serial.end();
- Serial.begin(BAUDRATE);
- Serial.println("serPrgStart");
- while (!endOfPrg) {
- while (Serial.available() > 0) {
- // look for the next valid integer in the incoming serial stream:
- char myChar = Serial.read();
- if (myChar == 'd') {
- for (byte i = 0; i < 8; i++) {
- char c;
- while (!Serial.available()) {
- }
- do {
- c = Serial.read();
- } while (!(((c >= '0') && (c <= '9')) || ((c >= 'A') && (c <= 'F'))));
- value = hexToByte(c);
- while (!Serial.available()) {
- }
- do {
- c = Serial.read();
- } while (!(((c >= '0') && (c <= '9')) || ((c >= 'A') && (c <= 'F'))));
- value = value * 16 + hexToByte(c);
- EEPROM.write(addr + i, value);
- }
- Serial.print("w:");
- for (byte i = 0; i < 8; i++) {
- value = EEPROM.read(addr + i);;
- Serial.print(value, HEX);
- if (i < 7) {
- Serial.print(",");
- }
- }
- Serial.println();
- addr = addr + 8;
- }
- if (myChar == '*') {
- endOfPrg = true;
- }
- }
- }
- Serial.println("end");
- Serial.end();
- doReset();
- }
- byte hexToByte (char c) {
- if ( (c >= '0') && (c <= '9') ) {
- return c - '0';
- }
- if ( (c >= 'A') && (c <= 'F') ) {
- return (c - 'A') + 10;
- }
- }
|