From b24866225a6301d3a663f874725e83c012dc25d3 Mon Sep 17 00:00:00 2001 From: Florent Duchon Date: Wed, 26 Dec 2012 17:36:00 +0100 Subject: digital/beacon: add bitcloud stack into common directory digital/zigbit --- .../HAL/avr/atmega1281/common/include/halEeprom.h | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 digital/zigbit/bitcloud/stack/Components/HAL/avr/atmega1281/common/include/halEeprom.h (limited to 'digital/zigbit/bitcloud/stack/Components/HAL/avr/atmega1281/common/include/halEeprom.h') diff --git a/digital/zigbit/bitcloud/stack/Components/HAL/avr/atmega1281/common/include/halEeprom.h b/digital/zigbit/bitcloud/stack/Components/HAL/avr/atmega1281/common/include/halEeprom.h new file mode 100644 index 00000000..0ca06bfb --- /dev/null +++ b/digital/zigbit/bitcloud/stack/Components/HAL/avr/atmega1281/common/include/halEeprom.h @@ -0,0 +1,87 @@ +/**************************************************************************//** + \file halEeprom.h + + \brief Provides interface for the access to hardware dependent + EEPROM module. + + \author + Atmel Corporation: http://www.atmel.com \n + Support email: avr@atmel.com + + Copyright (c) 2008-2011, Atmel Corporation. All rights reserved. + Licensed under Atmel's Limited License Agreement (BitCloudTM). + + \internal + History: + 5/12/07 A. Khromykh - Created + ******************************************************************************/ +/****************************************************************************** + * WARNING: CHANGING THIS FILE MAY AFFECT CORE FUNCTIONALITY OF THE STACK. * + * EXPERT USERS SHOULD PROCEED WITH CAUTION. * + ******************************************************************************/ + +#ifndef _HALEEPROM_H +#define _HALEEPROM_H + +/****************************************************************************** + Includes section +******************************************************************************/ +#include +#include + +/****************************************************************************** + Define(s) section +******************************************************************************/ +/** \brief the mask to rise interrupt when operation on EEPROM was completed */ +#define HAL_EEPROM_WRITE_MASK_INT (1 << EEMPE | 1 << EERIE) +#define HAL_EEPROM_WRITE_MASK (1 << EEMPE) + +/****************************************************************************** + Prototypes section +******************************************************************************/ +/**************************************************************************//** +\brief Writes a byte to EEPROM. +\param[in] + EECRMask - mask that define capability of interrupt after byte writing. +\param[in] + address - address of byte +\param[in] + data - data. +******************************************************************************/ +void halEepromWrite(uint8_t EECRMask, uint16_t address, uint8_t data); + +/****************************************************************************** + Inline static functions section +******************************************************************************/ +/**************************************************************************//** +\brief Waits completion of previous operation. +******************************************************************************/ +INLINE void halWaitEepromReady(void) +{ + while (EECR & (1 << EEPE)); // wait for completion of previous write +} + +/**************************************************************************//** +\brief Reads byte from EEPROM. +\param[in] + address -address of byte. +\return + a read byte. +******************************************************************************/ +INLINE uint8_t halReadEeprom(uint16_t address) +{ + EEAR = address; + EECR |= (1 << EERE); + return EEDR; +} + +/**************************************************************************//** +\brief Posts the task to taskhandler that "EEPROM ready" + interrupt has occured. +******************************************************************************/ +INLINE void halSigEepromReadyInterrupt(void) +{ + halPostTask3(HAL_EE_READY); +} +#endif /*_HALEEPROM_H*/ +//eof halEeprom.h -- cgit v1.2.3