ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 июля
521814 Топик полностью
fk0, легенда (11.06.2014 13:46 - 13:48, просмотров: 107) ответил Codavr на Это как?
Пример 1:  #define FIFO_PTR uint8_t #include "fifo.h" #define MIN_FIFO_FREE 8 declare_fifo(uart1_tx, 64) defun_fifo_getc(uart1_tx) defun_fifo_putc(uart1_tx) defun_fifo_write(uart1_tx) declare_fifo(uart1_rx, 128) defun_fifo_getc(uart1_rx) defun_fifo_read(uart1_rx) defun_fifo_putc(uart1_rx) declare_fifo(uart2_tx, 32) defun_fifo_getc(uart2_tx) defun_fifo_putc(uart2_tx) defun_fifo_write(uart2_tx) declare_fifo(uart2_rx, 128) defun_fifo_getc(uart2_rx) defun_fifo_read(uart2_rx) defun_fifo_putc(uart2_rx) Содержимое fifo.h: #define declare_fifo(iob, size) \ volatile static unsigned char iob##buf[(size)]; \ volatile static NEAR FIFO_PTR iob##_rd, iob##_wr; #define defun_fifo_getc(iob) \ int iob##_getc(void) { \ int c; \ register FIFO_PTR rd=iob##_rd; \ if (__BUF_IS_EMPTY(iob##buf, rd, iob##_wr)) return -1; \ c=__BUF_READ(iob##buf, rd), iob##_rd=++rd; \ return c; \ } ... Пример 2: #ifdef _MPC_ /* for PIC18xxx */ #define SUFFIX _intr #include "timers_intr.c" #undef SUFFIX #endif #include "timers.intr.c" Содержимое timers_intr.c: #undef MKNAME #ifdef SUFFIX #define MKNAME(name) name ## SUFFIX #else #define MKNAME(name) name #endif void MKNAME(timer_set) (ftimer_t tn, ftime_t t) { ... } void MKNAME(timer_stop) (ftimer_t tn) { ... }
[ZX]