bitbuffer.h 982 B

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