Cara Menghapus EEPROM Arduino

Arduino UNO R3

Cara Menghapus EEPROM Arduino

Cara menghapus EEPROM Arduino ada 2 cara:

  • Menghapus EEPROM menggunakan program yang diupload ke memori Flash dan kemudian dijalankan
  • Menggunakan fasilitas serial programming melalui ISP (In System Programming) di ATmega328
  • Menggunakan fasilitas parallel programming / high voltage programming pada ATmega328

Menghapus EEPROM Dengan Upload Program

Teknik ini dijelaskan di tutorial EEPROM Clear di https://www.arduino.cc/en/Tutorial/EEPROMClear

Prinsip dasarnya adalah menggunakan fungsi EEPROM.write() untuk menulis angka 0 ke semua lokasi EEPROM.

Berikut ini contoh program untuk menghapus semua isi data di EEPROM.

/*
 * EEPROM Write
 *
 * Stores values read from analog input 0 into the EEPROM.
 * These values will stay in the EEPROM when the board is
 * turned off and may be retrieved later by another sketch.
 */


#include <EEPROM.h>

/** the current address in the EEPROM (i.e. which byte we're going to write to next) **/
int addr = 0;

void setup() {
  /** Empty setup. **/
}

void loop() {
  /***
    Need to divide by 4 because analog inputs range from
    0 to 1023 and each byte of the EEPROM can only hold a
    value from 0 to 255.
  ***/


  int val = analogRead(0) / 4;

  /***
    Write the value to the appropriate byte of the EEPROM.
    these values will remain there when the board is
    turned off.
  ***/


  EEPROM.write(addr, val);

  /***
    Advance to the next address, when at the end restart at the beginning.

    Larger AVR processors have larger EEPROM sizes, E.g:
    - Arduno Duemilanove: 512b EEPROM storage.
    - Arduino Uno:        1kb EEPROM storage.
    - Arduino Mega:       4kb EEPROM storage.

    Rather than hard-coding the length, you should use the pre-provided length function.
    This will make your code portable to all AVR processors.
  ***/

  addr = addr + 1;
  if (addr == EEPROM.length()) {
    addr = 0;
  }

  /***
    As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an
    EEPROM address is also doable by a bitwise and of the length - 1.

    ++addr &= EEPROM.length() - 1;
  ***/



  delay(100);
}

Menghapus EEPROM Dengan ISP (In System Programming)

Pada metode ini, diperlukan antar muka khusus ke port ISP di ATmega328 pada Arduino UNO. Contoh antar muka yang populer adalah USBasp (https://www.fischl.de/usbasp/)

Perangkat lunak yang diperlukan ada beberapa macam, misalnya:

 

Arduino UNO R3
Arduino UNO R3

 

 

Tinggalkan Balasan

This site uses Akismet to reduce spam. Learn how your comment data is processed.