see: https://developer.mbed.org/users/okini3939/notebook/necnfc/

Dependencies:   NECnfc mbed

Committer:
okini3939
Date:
Tue Sep 15 06:33:01 2015 +0000
Revision:
0:b5fa611b8d7d
sample build;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:b5fa611b8d7d 1 #include "mbed.h"
okini3939 0:b5fa611b8d7d 2 #include "NECnfc.h"
okini3939 0:b5fa611b8d7d 3
okini3939 0:b5fa611b8d7d 4 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
okini3939 0:b5fa611b8d7d 5 Serial pc(USBTX, USBRX);
okini3939 0:b5fa611b8d7d 6 NECnfc rf(p9, p10, p13, p14, p15, 38400, NECnfc::TYPE_920MHz); // tx, rx, reset, wakeup, mode
okini3939 0:b5fa611b8d7d 7 DigitalOut rts(p11);
okini3939 0:b5fa611b8d7d 8 Ticker timer;
okini3939 0:b5fa611b8d7d 9
okini3939 0:b5fa611b8d7d 10 void isr_recv () {
okini3939 0:b5fa611b8d7d 11 char buf[NEC_MAXLENGTH + 1];
okini3939 0:b5fa611b8d7d 12 int i, dest, src;
okini3939 0:b5fa611b8d7d 13 i = rf.readData(&dest, &src, buf, sizeof(buf));
okini3939 0:b5fa611b8d7d 14 if (i <= 0) return;
okini3939 0:b5fa611b8d7d 15 buf[i] = 0;
okini3939 0:b5fa611b8d7d 16 printf("recv to:%08x from:%08x '%s'\r\n", dest, src, buf);
okini3939 0:b5fa611b8d7d 17 led4 = !led4;
okini3939 0:b5fa611b8d7d 18 }
okini3939 0:b5fa611b8d7d 19
okini3939 0:b5fa611b8d7d 20 int main() {
okini3939 0:b5fa611b8d7d 21 Timer t;
okini3939 0:b5fa611b8d7d 22 unsigned int id;
okini3939 0:b5fa611b8d7d 23
okini3939 0:b5fa611b8d7d 24 rts = 0;
okini3939 0:b5fa611b8d7d 25 led1 = 1;
okini3939 0:b5fa611b8d7d 26 pc.baud(115200);
okini3939 0:b5fa611b8d7d 27 pc.printf("*** NEC\r\n");
okini3939 0:b5fa611b8d7d 28 wait(0.5);
okini3939 0:b5fa611b8d7d 29
okini3939 0:b5fa611b8d7d 30 rf.attach(&isr_recv);
okini3939 0:b5fa611b8d7d 31 rf.setRfConfig(NECnfc::PWR_MAX, 24, NECnfc::BAUD_50k);
okini3939 0:b5fa611b8d7d 32
okini3939 0:b5fa611b8d7d 33 id = rf.getId();
okini3939 0:b5fa611b8d7d 34 pc.printf(" id %08x\r\n", id);
okini3939 0:b5fa611b8d7d 35
okini3939 0:b5fa611b8d7d 36 t.start();
okini3939 0:b5fa611b8d7d 37 while(1) {
okini3939 0:b5fa611b8d7d 38 rf.poll();
okini3939 0:b5fa611b8d7d 39
okini3939 0:b5fa611b8d7d 40 if (pc.readable()) {
okini3939 0:b5fa611b8d7d 41 char c = pc.getc();
okini3939 0:b5fa611b8d7d 42 if (c == ' ') {
okini3939 0:b5fa611b8d7d 43 led2 = 1;
okini3939 0:b5fa611b8d7d 44 rf.send(NECnfc::NECMSG_SEND_NOACK, NEC_DUMMYID, "Hello mbed", 10);
okini3939 0:b5fa611b8d7d 45 }
okini3939 0:b5fa611b8d7d 46 }
okini3939 0:b5fa611b8d7d 47
okini3939 0:b5fa611b8d7d 48 if (t.read() >= 5) {
okini3939 0:b5fa611b8d7d 49 led3 = 1;
okini3939 0:b5fa611b8d7d 50 t.reset();
okini3939 0:b5fa611b8d7d 51 rf.send(NECnfc::NECMSG_SEND_NOACK, NEC_DUMMYID, "Hello World", 11);
okini3939 0:b5fa611b8d7d 52 }
okini3939 0:b5fa611b8d7d 53
okini3939 0:b5fa611b8d7d 54 led1 = !led1;
okini3939 0:b5fa611b8d7d 55 led2 = 0;
okini3939 0:b5fa611b8d7d 56 led3 = 0;
okini3939 0:b5fa611b8d7d 57 wait(0.1);
okini3939 0:b5fa611b8d7d 58 }
okini3939 0:b5fa611b8d7d 59 }