Better Serial C class library with interrupt

Dependencies:   RingBuffer

Fork of iSerial by Yoji KURODA

Committer:
ykuroda
Date:
Sat Sep 01 12:28:28 2012 +0000
Revision:
3:d5353b68105f
Parent:
2:3fc74f4d685a
Child:
4:b38ef9675d39
name change

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ykuroda 3:d5353b68105f 1 //
ykuroda 3:d5353b68105f 2 // iSerial.h ... Serial Driver with Interrupt Rec/Send
ykuroda 3:d5353b68105f 3 //
ykuroda 3:d5353b68105f 4 // Copyright 2012 Yoji KURODA
ykuroda 3:d5353b68105f 5 //
ykuroda 3:d5353b68105f 6 // 2009.11.13 ... Originally written by Y.Kuroda for Renesas H83664
ykuroda 3:d5353b68105f 7 // 2012.08.31 ... Code convert for mbed in C++
ykuroda 3:d5353b68105f 8 //
ykuroda 3:d5353b68105f 9 #ifndef _ISERIAL_H
ykuroda 3:d5353b68105f 10 #define _ISERIAL_H
ykuroda 3:d5353b68105f 11
ykuroda 3:d5353b68105f 12 #include <string.h>
ykuroda 3:d5353b68105f 13 #include "RingBuffer.h"
ykuroda 3:d5353b68105f 14
ykuroda 3:d5353b68105f 15
ykuroda 3:d5353b68105f 16 class iSerial : public Serial {
ykuroda 3:d5353b68105f 17 protected:
ykuroda 3:d5353b68105f 18
ykuroda 3:d5353b68105f 19 RingBuffer txbuf;
ykuroda 3:d5353b68105f 20 RingBuffer rxbuf;
ykuroda 3:d5353b68105f 21
ykuroda 3:d5353b68105f 22 void tx_handler(void);
ykuroda 3:d5353b68105f 23 void rx_handler(void);
ykuroda 3:d5353b68105f 24
ykuroda 3:d5353b68105f 25
ykuroda 3:d5353b68105f 26 public:
ykuroda 3:d5353b68105f 27
ykuroda 3:d5353b68105f 28 enum TERMINL_CODES { CR=0x0D, LF=0x0A };
ykuroda 3:d5353b68105f 29
ykuroda 3:d5353b68105f 30 /*
ykuroda 3:d5353b68105f 31 * void init_sci(void)
ykuroda 3:d5353b68105f 32 *
ykuroda 3:d5353b68105f 33 *@ƒ|[ƒg‰Šú‰»ŠÖ”DDDD‚·‚ׂĂÌI/O‚̐ݒè‚ðs‚Á‚Ä‚¢‚éD
ykuroda 3:d5353b68105f 34 *
ykuroda 3:d5353b68105f 35 *@@ˆø”F‚È‚µ
ykuroda 3:d5353b68105f 36 *@@–ß‚è’lF‚È‚µ
ykuroda 3:d5353b68105f 37 *
ykuroda 3:d5353b68105f 38 */
ykuroda 3:d5353b68105f 39 iSerial(PinName _tx, PinName _rx, const char *_name=NULL, int _txbufsize=100, int _rxbufsize=100);
ykuroda 3:d5353b68105f 40
ykuroda 3:d5353b68105f 41 /*
ykuroda 3:d5353b68105f 42 * ƒVƒŠƒAƒ‹“ü—Í‚É•¶Žš‚ª‚ ‚é‚©‚Ç‚¤‚©ƒ`ƒFƒbƒN
ykuroda 3:d5353b68105f 43 * •Ô’lF ‚O@@F•¶Žš‚ª‚È‚¢
ykuroda 3:d5353b68105f 44 * ‚OˆÈŠOF•¶Žš‚ª—ˆ‚Ä‚¢‚é
ykuroda 3:d5353b68105f 45 */
ykuroda 3:d5353b68105f 46 int readable(void);
ykuroda 3:d5353b68105f 47
ykuroda 3:d5353b68105f 48 /*
ykuroda 3:d5353b68105f 49 * ƒVƒŠƒAƒ‹‚©‚çˆê•¶Žš“ü—Í
ykuroda 3:d5353b68105f 50 */
ykuroda 3:d5353b68105f 51 int getc(void);
ykuroda 3:d5353b68105f 52
ykuroda 3:d5353b68105f 53 /*
ykuroda 3:d5353b68105f 54 *@ƒVƒŠƒAƒ‹‚ֈꕶŽšo—Í
ykuroda 3:d5353b68105f 55 */
ykuroda 3:d5353b68105f 56 void putc(short ch);
ykuroda 3:d5353b68105f 57
ykuroda 3:d5353b68105f 58
ykuroda 3:d5353b68105f 59 /*
ykuroda 3:d5353b68105f 60 *@ƒVƒŠƒAƒ‹‚Ö•¶Žš—ñ‚ðo—Í
ykuroda 3:d5353b68105f 61 *@@’Fˆê‰ñ‚̍ő啶Žš”‚ÍLINESIZE
ykuroda 3:d5353b68105f 62 *@@’F•¶Žš—ñ‚̏I‚í‚è‚ɂ̓kƒ‹•¶Žš‚ª•K—vD
ykuroda 3:d5353b68105f 63 *
ykuroda 3:d5353b68105f 64 *@@ˆø”F•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^
ykuroda 3:d5353b68105f 65 *@@•Ô’lFo—Í‚µ‚½•¶Žš”
ykuroda 3:d5353b68105f 66 */
ykuroda 3:d5353b68105f 67 short int putstr(const char* s);
ykuroda 3:d5353b68105f 68
ykuroda 3:d5353b68105f 69 /*@void outs(char* s)
ykuroda 3:d5353b68105f 70 *@ƒVƒŠƒAƒ‹‚Ö•¶Žš—ñ‚ðˆêso—Í
ykuroda 3:d5353b68105f 71 *@@’FÅŒã‚ɉüsƒR[ƒh‚𑗂鑼‚Íoutstr‚Æ“¯‚¶
ykuroda 3:d5353b68105f 72 *
ykuroda 3:d5353b68105f 73 *@@ˆø”F•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^
ykuroda 3:d5353b68105f 74 *@@•Ô’lFo—Í‚µ‚½•¶Žš”
ykuroda 3:d5353b68105f 75 */
ykuroda 3:d5353b68105f 76 short int puts(const char* s);
ykuroda 3:d5353b68105f 77 };
ykuroda 3:d5353b68105f 78
ykuroda 3:d5353b68105f 79
ykuroda 3:d5353b68105f 80 #endif /* _SCI_H */