//---------------------------------------------------------------------------
#ifndef ATmega48H
#define ATmega48H
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
//--- Area3:  0 - Low Byte, 1 - High byte, 2 - Extended byte, 3 - Lock byte
//--- functions output: true - success, false - fail ------------------------
//---------------------------------------------------------------------------
bool ATmega48_ProgrammingEnable();                    // переключение в режим программирования
bool ATmega48_ChipErase();                            // стирание EEPROM и flash
bool ATmega48_ReadProgramMemory(unsigned int, bool);  // чтение байта программы по указанному адресу, 0 - читать, 1 - проверять
bool ATmega48_LoadProgramMemoryPage(unsigned int);    // загрузка байта программы в страницу 16-ти словного буфера по указанному адресу
bool ATmega48_WriteProgramMemoryPage(unsigned int);   // запись загруженной 16-словной страницы программы по указанному адресу
bool ATmega48_ReadEEPROMMemory(unsigned int, bool);   // чтение байта EEPROM по указанному адресу, 0 - читать, 1 - проверять
bool ATmega48_WriteEEPROMMemory(unsigned int);        // запись байта в EEPROM по указанному адресу
//---
bool ATmega48_ReadLockBits();                    // чтение Lock-битов (заполнит байт Area3[3])
bool ATmega48_WriteLockBits();                   // запись Lock-битов (из байта Area3[3])
unsigned int ATmega48_ReadSignatureBytes();      // чтение байтов сигнатуры (вернёт идентификатор чипа)
bool ATmega48_WriteFuseBits();                   // запись Fuse-битов (Low Fuse Byte      - Area3[0])
bool ATmega48_WriteFuseHighBits();               // запись Fuse-битов (High Fuse Byte     - Area3[1])
bool ATmega48_WriteFuseExtendedBits();           // запись Fuse-битов (Extended Fuse Byte - Area3[2])
bool ATmega48_ReadFuseBits();                    // чтение Fuse-битов (Low Fuse Byte      - Area3[0])
bool ATmega48_ReadFuseHighBits();                // чтение Fuse-битов (High Fuse Byte     - Area3[1])
bool ATmega48_ReadFuseExtendedBits();            // чтение Fuse-битов (Extended Fuse Byte - Area3[2])
bool ATmega48_ReadCalibrationBytes();            // чтение байтов калибровки (сохраняем их в Area4)
//---------------------------------------------------------------------------
#endif
