5 * th9x - http://code.google.com/p/th9x
6 * er9x - http://code.google.com/p/er9x
7 * gruvin9x - http://code.google.com/p/gruvin9x
9 * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
24 #include "definitions.h"
30 DMAFifo(DMA_Stream_TypeDef
* stream
):
46 uint8_t last(int index
)
48 return fifo
[(2*N
- stream
->NDTR
- index
) & (N
-1)];
56 return (ridx
== N
- stream
->NDTR
);
59 bool pop(uint8_t & element
)
66 ridx
= (ridx
+1) & (N
-1);
78 DMA_Stream_TypeDef
* stream
;
79 volatile uint32_t ridx
;
82 #endif // _DMA_FIFO_H_