Better Serial C++ class library with interrupt
Dependents: Dumb_box_rev2 mbed_GPSproject
iSerial class library can easy be used just by swapping Serial declarations.
API
| iSerial | |
Examples
#include "mbed.h"
#include "iSerial.h"
char s[] = "12345678901234567890123456789012345678901234567890";
int main() {
iSerial pc(USBTX,USBRX);
char* c = s;
while(1) {
pc.puts(s);
while(pc.readable()){
int ret = pc.getc();
if(ret)
*c++ = ret;
if(c >= s+sizeof(s)-1)
c = s;
}
wait(1);
}
}
Example 2
Comparing speed of ordinary Serial functions
#include "mbed.h"
#include "iSerial.h"
char s[] = "12345678901234567890123456789012345678901234567890"; // 50 bytes
int main() {
Timer t;
Serial pc(USBTX,USBRX);
pc.baud(921600);
t.reset();
t.start();
for(int i=0; i<30; i++) {
pc.printf(s);
wait(0.001);
}
t.stop();
int t1 = t.read_us();
pc.puts("\n\n\n");
iSerial ipc(USBTX,USBRX,NULL,1000,100); // try NOT to set the buffer over flowed
// iSerial ipc(USBTX,USBRX); // set as default = 100, 100
ipc.baud(921600);
t.reset();
t.start();
for(int i=0; i<30; i++) {
ipc.printf(s);
wait(0.001);
}
t.stop();
int t2 = t.read_us();
ipc.printf("\n\n\nThe time %d, %d [us] was taken.\n", t1, t2);
ipc.puts("End.");
ipc.flush();
}
Changes
| Revision | Date | Who | Commit message |
|---|---|---|---|
| 8:20759f992d48 | 2012-09-03 | ykuroda | bugfix of rx interrupt |
| 7:5a25789c3b55 | 2012-09-03 | ykuroda | bugfix of tx interrupt |
| 6:8d4b95b90c3b | 2012-09-03 | ykuroda | flush added |
| 5:d83fc550ccbc | 2012-09-03 | ykuroda | Now support both LPC1768 and LPC11U24. But it can be used for USBTX/USBRX. Others are unchecked.; |
| 4:b38ef9675d39 | 2012-09-03 | ykuroda | printf using interrupt is implemented |
| 3:d5353b68105f | 2012-09-01 | ykuroda | name change |
| 2:3fc74f4d685a | 2012-08-31 | ykuroda | Name change |
| 1:28d6ef10e48c | 2012-08-31 | ykuroda | Including RingBuffer library |
| 0:1d193cb1a933 | 2012-08-31 | ykuroda | 1st coding |
Yoji KURODA