Sample program for LPC1768. This works with LPC1114 DisatnceSensorUnitProgram.

Dependencies:   mbed

Committer:
aktk
Date:
Wed Jun 08 14:16:58 2016 +0000
Revision:
0:0cbd0489395a
Sample Program for LPC1768. This works with LPC1114 DistanceSensorUnitProgram.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aktk 0:0cbd0489395a 1 #include "mbed.h"
aktk 0:0cbd0489395a 2 #include <cmath>
aktk 0:0cbd0489395a 3
aktk 0:0cbd0489395a 4 DigitalOut myled(LED1);
aktk 0:0cbd0489395a 5 Serial pc(USBTX, USBRX);
aktk 0:0cbd0489395a 6 Serial com_lpc1114(p13, p14);
aktk 0:0cbd0489395a 7
aktk 0:0cbd0489395a 8 LocalFileSystem local("local"); // define Mount Point(which becomes Direcory Path)
aktk 0:0cbd0489395a 9
aktk 0:0cbd0489395a 10 void echoback()
aktk 0:0cbd0489395a 11 {
aktk 0:0cbd0489395a 12 char str[6] = "HELLO";
aktk 0:0cbd0489395a 13
aktk 0:0cbd0489395a 14 com_lpc1114.putc(0x11); //Functional
aktk 0:0cbd0489395a 15 com_lpc1114.putc(6); //size of echo
aktk 0:0cbd0489395a 16 pc.printf("echoback: ");
aktk 0:0cbd0489395a 17 for(char ch = 0; ch < 6; ch++) {
aktk 0:0cbd0489395a 18 com_lpc1114.putc(str[ch]);
aktk 0:0cbd0489395a 19 pc.printf("%c",com_lpc1114.getc());
aktk 0:0cbd0489395a 20 }
aktk 0:0cbd0489395a 21 pc.putc('\n');
aktk 0:0cbd0489395a 22
aktk 0:0cbd0489395a 23 }
aktk 0:0cbd0489395a 24
aktk 0:0cbd0489395a 25 int main()
aktk 0:0cbd0489395a 26 {
aktk 0:0cbd0489395a 27 FILE* fp;
aktk 0:0cbd0489395a 28 char cfp;
aktk 0:0cbd0489395a 29 unsigned short dtc;
aktk 0:0cbd0489395a 30 char ctmp;
aktk 0:0cbd0489395a 31 unsigned short dtmp;
aktk 0:0cbd0489395a 32
aktk 0:0cbd0489395a 33 pc.printf("\nPROGRAM BEGIN\n");
aktk 0:0cbd0489395a 34
aktk 0:0cbd0489395a 35 pc.printf("\nselect ch.0\n");
aktk 0:0cbd0489395a 36 com_lpc1114.putc(0);
aktk 0:0cbd0489395a 37
aktk 0:0cbd0489395a 38 cfp = pc.getc();
aktk 0:0cbd0489395a 39 if(cfp == 'l') {
aktk 0:0cbd0489395a 40 fp = fopen("/local/SENSOR00.SAV", "rb");
aktk 0:0cbd0489395a 41 if (fp == NULL) pc.printf("\nfopen failured\n");
aktk 0:0cbd0489395a 42
aktk 0:0cbd0489395a 43 pc.printf("\nload save data to lpc1114\n");
aktk 0:0cbd0489395a 44 com_lpc1114.putc('l');
aktk 0:0cbd0489395a 45 pc.printf("ACK recieved :");
aktk 0:0cbd0489395a 46 //for(int i = 0; i < 9 * 256 + 3 + 6 * 5; i++) {
aktk 0:0cbd0489395a 47 int i = 0;
aktk 0:0cbd0489395a 48
aktk 0:0cbd0489395a 49 while(1) {
aktk 0:0cbd0489395a 50 fread(&cfp, sizeof(char), 1, fp);
aktk 0:0cbd0489395a 51 com_lpc1114.putc(cfp);
aktk 0:0cbd0489395a 52 if(i % 3 == 2) {
aktk 0:0cbd0489395a 53 cfp = com_lpc1114.getc();
aktk 0:0cbd0489395a 54 if (cfp == 0x06) {
aktk 0:0cbd0489395a 55 for(double j = 0.0; j < log10(static_cast<double>(i / 3 + 1)); j += 1.0)
aktk 0:0cbd0489395a 56 pc.putc(0x08);
aktk 0:0cbd0489395a 57 pc.printf("%d", i / 3 + 1);
aktk 0:0cbd0489395a 58 //pc.getc();
aktk 0:0cbd0489395a 59 }//
aktk 0:0cbd0489395a 60 else if (cfp == 0x04) {
aktk 0:0cbd0489395a 61 //cfp = com_lpc1114.getc();
aktk 0:0cbd0489395a 62 //if (cfp == 0x04) {
aktk 0:0cbd0489395a 63 pc.printf("\nSUCCESSED");
aktk 0:0cbd0489395a 64 break;
aktk 0:0cbd0489395a 65 //}
aktk 0:0cbd0489395a 66 }
aktk 0:0cbd0489395a 67 }
aktk 0:0cbd0489395a 68 i++;
aktk 0:0cbd0489395a 69 }
aktk 0:0cbd0489395a 70 fclose(fp);
aktk 0:0cbd0489395a 71 }
aktk 0:0cbd0489395a 72
aktk 0:0cbd0489395a 73 else if (cfp == 'c') {
aktk 0:0cbd0489395a 74 fp = fopen("/local/SENSOR00.SAV", "wb");
aktk 0:0cbd0489395a 75 if (fp == NULL) pc.printf("\nfopen failured\n");
aktk 0:0cbd0489395a 76
aktk 0:0cbd0489395a 77 com_lpc1114.putc('c');
aktk 0:0cbd0489395a 78 pc.printf("sampling:0");
aktk 0:0cbd0489395a 79 for(int i = 0; i < 5; i++){
aktk 0:0cbd0489395a 80 pc.putc(0x08);
aktk 0:0cbd0489395a 81 pc.printf("%d", com_lpc1114.getc());
aktk 0:0cbd0489395a 82 }
aktk 0:0cbd0489395a 83 pc.putc('\n');
aktk 0:0cbd0489395a 84 pc.printf("\nsave data from lpc1114\n");
aktk 0:0cbd0489395a 85 while(1) {
aktk 0:0cbd0489395a 86 ctmp = com_lpc1114.getc();
aktk 0:0cbd0489395a 87 if(ctmp == 0x04)break;
aktk 0:0cbd0489395a 88 dtmp = (static_cast<unsigned short>(ctmp) << 8);
aktk 0:0cbd0489395a 89 ctmp = com_lpc1114.getc();
aktk 0:0cbd0489395a 90 dtmp = dtmp | ctmp;
aktk 0:0cbd0489395a 91 ctmp = com_lpc1114.getc();
aktk 0:0cbd0489395a 92 com_lpc1114.putc(0x06);
aktk 0:0cbd0489395a 93 fwrite(&dtmp, sizeof(unsigned short), 1, fp);
aktk 0:0cbd0489395a 94 fwrite(&ctmp, sizeof(char), 1, fp);
aktk 0:0cbd0489395a 95 }
aktk 0:0cbd0489395a 96 pc.printf("\nSUCCESSED");
aktk 0:0cbd0489395a 97
aktk 0:0cbd0489395a 98 fclose(fp);
aktk 0:0cbd0489395a 99 }
aktk 0:0cbd0489395a 100
aktk 0:0cbd0489395a 101
aktk 0:0cbd0489395a 102
aktk 0:0cbd0489395a 103 pc.printf("\nLOOP\n");
aktk 0:0cbd0489395a 104
aktk 0:0cbd0489395a 105 echoback();
aktk 0:0cbd0489395a 106
aktk 0:0cbd0489395a 107 printf("dtc: 000");
aktk 0:0cbd0489395a 108 while(1) {
aktk 0:0cbd0489395a 109 myled = 1;
aktk 0:0cbd0489395a 110 wait(0.2);
aktk 0:0cbd0489395a 111 com_lpc1114.putc(0x12);//Functional
aktk 0:0cbd0489395a 112 dtc = com_lpc1114.getc();
aktk 0:0cbd0489395a 113 dtc = ((dtc << 8) | com_lpc1114.getc());
aktk 0:0cbd0489395a 114 for(int j = 0; j < 3; j++)
aktk 0:0cbd0489395a 115 pc.putc(0x08);
aktk 0:0cbd0489395a 116 printf("%3d", dtc);
aktk 0:0cbd0489395a 117 myled = 0;
aktk 0:0cbd0489395a 118 wait(0.2);
aktk 0:0cbd0489395a 119 if(pc.readable()) {
aktk 0:0cbd0489395a 120 pc.getc();
aktk 0:0cbd0489395a 121 pc.putc('\n');
aktk 0:0cbd0489395a 122 break;
aktk 0:0cbd0489395a 123 }
aktk 0:0cbd0489395a 124 }
aktk 0:0cbd0489395a 125
aktk 0:0cbd0489395a 126 }