Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of MODSERIAL by
Diff: MODSERIAL.h
- Revision:
- 3:0f10f536456e
- Parent:
- 2:b936b4acbd92
- Child:
- 4:28de979b77cf
--- a/MODSERIAL.h Sun Nov 21 03:31:51 2010 +0000 +++ b/MODSERIAL.h Sun Nov 21 13:58:53 2010 +0000 @@ -137,7 +137,7 @@ //! DMA channels. enum dmaChannel { NotInUse = -1 /*!< DMA not in use */ - , Channel0 = 0 /*!< Channel 0 */ + , Channel0 = 0 /*!< Channel 0 */ , Channel1 /*!< Channel 1 */ , Channel2 /*!< Channel 2 */ , Channel3 /*!< Channel 3 */ @@ -510,6 +510,14 @@ void rxBufferFlush(void) { flushBuffer(RxIrq); } /** + * Function: dmaSend + * + * Remove all bytes from the RX buffer. + * @ingroup API + */ + int dmaSend(char *buffer, int length, dmaChannel q = Channel7); + + /** * Function: getcNb * * Like getc() but is non-blocking. If no bytes are in the RX buffer this @@ -606,6 +614,15 @@ int scanf(const char* format, ...); #endif + /** + * DMA channel in use. + * @ingroup INTERNALS + */ + int dmaInUse[2]; + + void isr_rx_dma(void); + void isr_tx_dma(void); + protected: /** @@ -663,12 +680,6 @@ volatile int buffer_overflow[2]; /** - * DMA channel in use. - * @ingroup INTERNALS - */ - volatile int dmaInUse[2]; - - /** * Callback system. * @ingroup INTERNALS */ @@ -756,6 +767,40 @@ * @ingroup INTERNALS */ int upSizeBuffer(int size, IrqType type, bool memory_check); + + /** + * Function: this_reset + * @see DMA.cpp + * @ingroup INTERNALS + */ + void this_reset(void); + + /** + * Function: dmaSetup + * @see DMA.cpp + * @ingroup INTERNALS + */ + LPC_GPDMACH_TypeDef * dmaSetup(dmaChannel q); + + /** + * Function: dmaSelectChannel + * @see DMA.cpp + * @ingroup INTERNALS + */ + LPC_GPDMACH_TypeDef * dmaSelectChannel(dmaChannel q = Channel7) { + switch (q) { + case Channel0: return LPC_GPDMACH0; + case Channel1: return LPC_GPDMACH1; + case Channel2: return LPC_GPDMACH2; + case Channel3: return LPC_GPDMACH3; + case Channel4: return LPC_GPDMACH4; + case Channel5: return LPC_GPDMACH5; + case Channel6: return LPC_GPDMACH6; + case Channel7: return LPC_GPDMACH7; + } + return (LPC_GPDMACH_TypeDef *)NULL; + } + }; }; // namespace AjK ends