| 1234567891011121314151617181920 |
- #ifndef BITBUFFER_H
- #define BITBUFFER_H
- // Ðàçìåð áàéòà = 8 áèò
- // ïðåîáðàçóåò íîìåð áèòà â öåïî÷êå áàéòîâ â ñìåùåíèå áàéòà îò íà÷àëà áóôåðà
- #define BIT2BYTE_OFFSET(n) ((n)/8)
- #define BITinBYTE_MASK(n) (1ul<<((n)%8))
- // îïåðåäåëÿåò ìèíèìàëüíûé ðàçìåð â áàéòàõ äîñòàòî÷íûé äëÿ õðàíåíèÿ n áèò
- #define BITBUFFER_SIZE(n) ((n)/8 + 1)
- // óñòàíîâêà, ñáðîñ, ïðîâåðêà áèòîâ â ïîòîêå áàéòîâ
- #define BITBUFFER_CHECK(bytesStream,n) (((bytesStream)[ BIT2BYTE_OFFSET(n) ]) & BITinBYTE_MASK(n))
- #define BITBUFFER_SET( bytesStream,n) ((bytesStream)[ BIT2BYTE_OFFSET(n) ]) |= BITinBYTE_MASK(n)
- #define BITBUFFER_CLEAR(bytesStream,n) ((bytesStream)[ BIT2BYTE_OFFSET(n) ]) &= (~BITinBYTE_MASK(n))
- // ïîèñê íîìåðà íà÷àëüíîãî ñåêòîðà ïî àäðåñó
- #define __FLASH_ADDRESS2SECTOR_BEGIN(addr,sectSize) ((addr)/(sectSize))
- #define __FLASH_ADDRESS2SECTOR_END(addr,sectSize) (((addr)/(sectSize)) + ((((addr)%(sectSize))>0)?1:0))
- #endif
|