5555+
Dependencies: RingBuffer
Fork of iSerial by
iSerial.h@2:3fc74f4d685a, 2012-08-31 (annotated)
- Committer:
- ykuroda
- Date:
- Fri Aug 31 17:32:00 2012 +0000
- Revision:
- 2:3fc74f4d685a
- Parent:
- SerialIntr.h@0:1d193cb1a933
- Child:
- 3:d5353b68105f
Name change
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ykuroda | 0:1d193cb1a933 | 1 | // |
ykuroda | 2:3fc74f4d685a | 2 | // iSerial.h ... Serial Driver with Interrupt Rec/Send |
ykuroda | 0:1d193cb1a933 | 3 | // |
ykuroda | 0:1d193cb1a933 | 4 | // Copyright 2012 Yoji KURODA |
ykuroda | 0:1d193cb1a933 | 5 | // |
ykuroda | 0:1d193cb1a933 | 6 | // 2009.11.13 ... Originally written by Y.Kuroda for Renesas H83664 |
ykuroda | 0:1d193cb1a933 | 7 | // 2012.08.31 ... Code convert for mbed in C++ |
ykuroda | 0:1d193cb1a933 | 8 | // |
ykuroda | 2:3fc74f4d685a | 9 | #ifndef _ISERIAL_H |
ykuroda | 2:3fc74f4d685a | 10 | #define _ISERIAL_H |
ykuroda | 0:1d193cb1a933 | 11 | |
ykuroda | 0:1d193cb1a933 | 12 | #include <string.h> |
ykuroda | 0:1d193cb1a933 | 13 | #include "RingBuffer.h" |
ykuroda | 0:1d193cb1a933 | 14 | |
ykuroda | 0:1d193cb1a933 | 15 | |
ykuroda | 2:3fc74f4d685a | 16 | class ISerial : public Serial { |
ykuroda | 0:1d193cb1a933 | 17 | protected: |
ykuroda | 0:1d193cb1a933 | 18 | |
ykuroda | 0:1d193cb1a933 | 19 | RingBuffer txbuf; |
ykuroda | 0:1d193cb1a933 | 20 | RingBuffer rxbuf; |
ykuroda | 0:1d193cb1a933 | 21 | |
ykuroda | 0:1d193cb1a933 | 22 | void tx_handler(void); |
ykuroda | 0:1d193cb1a933 | 23 | void rx_handler(void); |
ykuroda | 0:1d193cb1a933 | 24 | |
ykuroda | 0:1d193cb1a933 | 25 | |
ykuroda | 0:1d193cb1a933 | 26 | public: |
ykuroda | 0:1d193cb1a933 | 27 | |
ykuroda | 0:1d193cb1a933 | 28 | enum TERMINL_CODES { CR=0x0D, LF=0x0A }; |
ykuroda | 0:1d193cb1a933 | 29 | |
ykuroda | 0:1d193cb1a933 | 30 | /* |
ykuroda | 0:1d193cb1a933 | 31 | * void init_sci(void) |
ykuroda | 0:1d193cb1a933 | 32 | * |
ykuroda | 0:1d193cb1a933 | 33 | * ポート初期化関数....すべてのI/Oの設定を行っている. |
ykuroda | 0:1d193cb1a933 | 34 | * |
ykuroda | 0:1d193cb1a933 | 35 | * 引数:なし |
ykuroda | 0:1d193cb1a933 | 36 | * 戻り値:なし |
ykuroda | 0:1d193cb1a933 | 37 | * |
ykuroda | 0:1d193cb1a933 | 38 | */ |
ykuroda | 2:3fc74f4d685a | 39 | ISerial(PinName _tx, PinName _rx, const char *_name=NULL, int _txbufsize=100, int _rxbufsize=100); |
ykuroda | 0:1d193cb1a933 | 40 | |
ykuroda | 0:1d193cb1a933 | 41 | /* |
ykuroda | 0:1d193cb1a933 | 42 | * シリアル入力に文字があるかどうかチェック |
ykuroda | 0:1d193cb1a933 | 43 | * 返値: 0 :文字がない |
ykuroda | 0:1d193cb1a933 | 44 | * 0以外:文字が来ている |
ykuroda | 0:1d193cb1a933 | 45 | */ |
ykuroda | 0:1d193cb1a933 | 46 | int readable(void); |
ykuroda | 0:1d193cb1a933 | 47 | |
ykuroda | 0:1d193cb1a933 | 48 | /* |
ykuroda | 0:1d193cb1a933 | 49 | * シリアルから一文字入力 |
ykuroda | 0:1d193cb1a933 | 50 | */ |
ykuroda | 0:1d193cb1a933 | 51 | int getc(void); |
ykuroda | 0:1d193cb1a933 | 52 | |
ykuroda | 0:1d193cb1a933 | 53 | /* |
ykuroda | 0:1d193cb1a933 | 54 | * シリアルへ一文字出力 |
ykuroda | 0:1d193cb1a933 | 55 | */ |
ykuroda | 0:1d193cb1a933 | 56 | void putc(short ch); |
ykuroda | 0:1d193cb1a933 | 57 | |
ykuroda | 0:1d193cb1a933 | 58 | |
ykuroda | 0:1d193cb1a933 | 59 | /* |
ykuroda | 0:1d193cb1a933 | 60 | * シリアルへ文字列を出力 |
ykuroda | 0:1d193cb1a933 | 61 | * 注:一回の最大文字数はLINESIZE |
ykuroda | 0:1d193cb1a933 | 62 | * 注:文字列の終わりにはヌル文字が必要. |
ykuroda | 0:1d193cb1a933 | 63 | * |
ykuroda | 0:1d193cb1a933 | 64 | * 引数:文字列へのポインタ |
ykuroda | 0:1d193cb1a933 | 65 | * 返値:出力した文字数 |
ykuroda | 0:1d193cb1a933 | 66 | */ |
ykuroda | 0:1d193cb1a933 | 67 | short int putstr(const char* s); |
ykuroda | 0:1d193cb1a933 | 68 | |
ykuroda | 0:1d193cb1a933 | 69 | /* void outs(char* s) |
ykuroda | 0:1d193cb1a933 | 70 | * シリアルへ文字列を一行出力 |
ykuroda | 0:1d193cb1a933 | 71 | * 注:最後に改行コードを送る他はoutstrと同じ |
ykuroda | 0:1d193cb1a933 | 72 | * |
ykuroda | 0:1d193cb1a933 | 73 | * 引数:文字列へのポインタ |
ykuroda | 0:1d193cb1a933 | 74 | * 返値:出力した文字数 |
ykuroda | 0:1d193cb1a933 | 75 | */ |
ykuroda | 0:1d193cb1a933 | 76 | short int puts(const char* s); |
ykuroda | 0:1d193cb1a933 | 77 | }; |
ykuroda | 0:1d193cb1a933 | 78 | |
ykuroda | 0:1d193cb1a933 | 79 | |
ykuroda | 0:1d193cb1a933 | 80 | #endif /* _SCI_H */ |