X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/663f449c10b9a77a429aaa81066ce2b43ca6dc39..2a0c28e6e47c8a173f32fc99cd8666a2633c5c12:/LUFA/Drivers/Board/Dataflash.h diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h index 01ee88930..acdcc4c40 100644 --- a/LUFA/Drivers/Board/Dataflash.h +++ b/LUFA/Drivers/Board/Dataflash.h @@ -48,7 +48,8 @@ * - None * * \section Module Description - * Functions, macros, variables, enums and types related to the control of board Dataflash ICs. + * Dataflash driver. This module provides an easy to use interface for the Dataflash ICs located on many boards, + * for the storage of large amounts of data into the Dataflash's non-volatile memory. * * If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project * directory. Otherwise, it will include the appropriate built in board driver header file. @@ -75,19 +76,31 @@ #endif /* Public Interface - May be used in end-application: */ + /* Macros: */ + #if !defined(__DOXYGEN__) + #define __GET_DATAFLASH_MASK2(x, y) x ## y + #define __GET_DATAFLASH_MASK(x) __GET_DATAFLASH_MASK2(DATAFLASH_CHIP,x) + #endif + + /* Retrieves the Dataflash chip select mask for the given Dataflash chip index. + * + * \param index Index of the dataflash chip mask to retrieve + */ + #define DATAFLASH_CHIP_MASK(index) __GET_DATAFLASH_MASK(index) + /* Pseudo-Function Macros: */ #if defined(__DOXYGEN__) /** Determines the currently selected dataflash chip. * - * \return Mask of the currently selected Dataflash chip, either DATAFLASH_NO_CHIP if no chip is selected + * \return Mask of the currently selected Dataflash chip, either \ref DATAFLASH_NO_CHIP if no chip is selected * or a DATAFLASH_CHIPn mask (where n is the chip number). */ static inline uint8_t Dataflash_GetSelectedChip(void); /** Selects the given dataflash chip. * - * \param ChipMask Mask of the Dataflash IC to select, in the form of DATAFLASH_CHIPn mask (where n is - * the chip number). + * \param[in] ChipMask Mask of the Dataflash IC to select, in the form of DATAFLASH_CHIPn mask (where n is + * the chip number). */ static inline void Dataflash_SelectChip(uint8_t ChipMask); @@ -105,7 +118,7 @@ /* Inline Functions: */ /** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash. * - * \param Byte of data to send to the dataflash + * \param[in] Byte of data to send to the dataflash * * \return Last response byte from the dataflash */ @@ -117,7 +130,7 @@ /** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash. * - * \param Byte of data to send to the dataflash + * \param[in] Byte of data to send to the dataflash */ static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE; static inline void Dataflash_SendByte(const uint8_t Byte) @@ -149,12 +162,12 @@ #else #error The selected board does not contain a dataflash IC. #endif - + /* Inline Functions: */ /** Initializes the dataflash driver (including the SPI driver) so that commands and data may be * sent to an attached dataflash IC. * - * \param PrescalerMask SPI prescaler mask, see SPI.h documentation + * \param[in] PrescalerMask SPI prescaler mask, see SPI.h documentation */ static inline void Dataflash_Init(const uint8_t PrescalerMask) { @@ -183,6 +196,7 @@ Dataflash_ToggleSelectedChipCS(); Dataflash_SendByte(DF_CMD_GETSTATUS); while (!(Dataflash_ReceiveByte() & DF_STATUS_READY)); + Dataflash_ToggleSelectedChipCS(); } /** Selects a dataflash IC from the given page number, which should range from 0 to @@ -191,16 +205,16 @@ * the total number of pages contained in the boards dataflash ICs, all dataflash ICs * are deselected. * - * \param PageAddress Address of the page to manipulate, ranging from - * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). + * \param[in] PageAddress Address of the page to manipulate, ranging from + * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). */ static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress); /** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with * dataflash commands which require a complete 24-byte address. * - * \param PageAddress Page address within the selected dataflash IC - * \param BufferByte Address within the dataflash's buffer + * \param[in] PageAddress Page address within the selected dataflash IC + * \param[in] BufferByte Address within the dataflash's buffer */ static inline void Dataflash_SendAddressBytes(uint16_t PageAddress, const uint16_t BufferByte);