White Wizard Board Wireless Oscilloscope sample program. PC program is here. http://www.wizard.nestegg.jp/

Dependencies:   mbed

Committer:
halfpitch
Date:
Wed Aug 24 05:29:31 2011 +0000
Revision:
0:ff25f1727cb9
Rev.A

Who changed what in which revision?

UserRevisionLine numberNew contents of line
halfpitch 0:ff25f1727cb9 1 #include "mbed.h"
halfpitch 0:ff25f1727cb9 2
halfpitch 0:ff25f1727cb9 3 Serial rn42(p9,p10);
halfpitch 0:ff25f1727cb9 4 //Serial rn42(p28,p27); // tx, rx
halfpitch 0:ff25f1727cb9 5 DigitalOut myled1(LED1);
halfpitch 0:ff25f1727cb9 6 DigitalOut myled2(LED2);
halfpitch 0:ff25f1727cb9 7 DigitalOut myled3(LED3);
halfpitch 0:ff25f1727cb9 8 DigitalOut myled4(LED4);
halfpitch 0:ff25f1727cb9 9
halfpitch 0:ff25f1727cb9 10 AnalogIn ad(p20);
halfpitch 0:ff25f1727cb9 11 AnalogOut da(p18);
halfpitch 0:ff25f1727cb9 12
halfpitch 0:ff25f1727cb9 13 Ticker flipper;
halfpitch 0:ff25f1727cb9 14
halfpitch 0:ff25f1727cb9 15 int AD_now, AD_before;
halfpitch 0:ff25f1727cb9 16 int ADdata[200];
halfpitch 0:ff25f1727cb9 17 int i1;
halfpitch 0:ff25f1727cb9 18 bool flg_save;
halfpitch 0:ff25f1727cb9 19 bool flg_finish_saving;
halfpitch 0:ff25f1727cb9 20
halfpitch 0:ff25f1727cb9 21 int flg_mode; //trigger mode
halfpitch 0:ff25f1727cb9 22 int trigger_y;
halfpitch 0:ff25f1727cb9 23
halfpitch 0:ff25f1727cb9 24
halfpitch 0:ff25f1727cb9 25 int flip_counter;
halfpitch 0:ff25f1727cb9 26
halfpitch 0:ff25f1727cb9 27 void flip() {
halfpitch 0:ff25f1727cb9 28 //printf("flg_save = %d, flg_finish_saving = %d, flg_mode = %c, trigger_y = %d",flg_save, flg_finish_saving, flg_mode, trigger_y);
halfpitch 0:ff25f1727cb9 29 //DA out
halfpitch 0:ff25f1727cb9 30 //da = (float)flip_counter * 0.01;
halfpitch 0:ff25f1727cb9 31 da = sin(((float)flip_counter*4.0 / 180.0) * 3.14)*0.5+0.5;
halfpitch 0:ff25f1727cb9 32 ++flip_counter;
halfpitch 0:ff25f1727cb9 33
halfpitch 0:ff25f1727cb9 34 if(flip_counter<90){
halfpitch 0:ff25f1727cb9 35 ;
halfpitch 0:ff25f1727cb9 36 }else{
halfpitch 0:ff25f1727cb9 37 flip_counter=0;
halfpitch 0:ff25f1727cb9 38 }
halfpitch 0:ff25f1727cb9 39
halfpitch 0:ff25f1727cb9 40 //AD comvert
halfpitch 0:ff25f1727cb9 41 AD_now = (int)(ad.read()*3300.0); //return mV
halfpitch 0:ff25f1727cb9 42
halfpitch 0:ff25f1727cb9 43 if(flg_save == 1){ //saving mode
halfpitch 0:ff25f1727cb9 44 if(i1 < 100){
halfpitch 0:ff25f1727cb9 45 flg_finish_saving = 0;
halfpitch 0:ff25f1727cb9 46 ADdata[i1] = AD_now; //return uV
halfpitch 0:ff25f1727cb9 47 myled1 = !myled1;
halfpitch 0:ff25f1727cb9 48 ++i1;
halfpitch 0:ff25f1727cb9 49 //printf("%d\n",i1);
halfpitch 0:ff25f1727cb9 50 }else{
halfpitch 0:ff25f1727cb9 51 i1 = 0;
halfpitch 0:ff25f1727cb9 52 flg_finish_saving = 1;
halfpitch 0:ff25f1727cb9 53 flg_save = 0; //break saving mode
halfpitch 0:ff25f1727cb9 54
halfpitch 0:ff25f1727cb9 55 //printf("flg_finish_saving = 1");
halfpitch 0:ff25f1727cb9 56 myled4 = !myled4;
halfpitch 0:ff25f1727cb9 57 }
halfpitch 0:ff25f1727cb9 58 }
halfpitch 0:ff25f1727cb9 59
halfpitch 0:ff25f1727cb9 60 //check trigger
halfpitch 0:ff25f1727cb9 61 //printf("flg_save = %d, flg_finish_saving = %d, flg_mode = %d\n",flg_save,flg_finish_saving,flg_mode);
halfpitch 0:ff25f1727cb9 62 if((flg_save == 0)&&(flg_finish_saving == 0)){
halfpitch 0:ff25f1727cb9 63 if(flg_mode == 1){ //up
halfpitch 0:ff25f1727cb9 64 if((trigger_y > AD_before)&&(trigger_y < AD_now)){
halfpitch 0:ff25f1727cb9 65 flg_save = 1;
halfpitch 0:ff25f1727cb9 66 myled2 = !myled2;
halfpitch 0:ff25f1727cb9 67 ADdata[0] = AD_before;
halfpitch 0:ff25f1727cb9 68 ADdata[1] = AD_now;
halfpitch 0:ff25f1727cb9 69 i1 = 2;
halfpitch 0:ff25f1727cb9 70
halfpitch 0:ff25f1727cb9 71 }
halfpitch 0:ff25f1727cb9 72 }else if(flg_mode == 2){ //down
halfpitch 0:ff25f1727cb9 73 if((trigger_y < AD_before)&&(trigger_y > AD_now)){
halfpitch 0:ff25f1727cb9 74 flg_save = 1;
halfpitch 0:ff25f1727cb9 75 myled2 = !myled2;
halfpitch 0:ff25f1727cb9 76 ADdata[0] = AD_before;
halfpitch 0:ff25f1727cb9 77 ADdata[1] = AD_now;
halfpitch 0:ff25f1727cb9 78 i1 = 2;
halfpitch 0:ff25f1727cb9 79 }
halfpitch 0:ff25f1727cb9 80 }else if(flg_mode == 0){ //stop
halfpitch 0:ff25f1727cb9 81 //do nothing
halfpitch 0:ff25f1727cb9 82 }
halfpitch 0:ff25f1727cb9 83 }
halfpitch 0:ff25f1727cb9 84
halfpitch 0:ff25f1727cb9 85 //printf("flg_save = %d, flg_finish_saving = %d, flg_mode = %d\n",flg_save,flg_finish_saving,flg_mode);
halfpitch 0:ff25f1727cb9 86
halfpitch 0:ff25f1727cb9 87 AD_before = AD_now;
halfpitch 0:ff25f1727cb9 88 myled3 = !myled3;
halfpitch 0:ff25f1727cb9 89 }
halfpitch 0:ff25f1727cb9 90
halfpitch 0:ff25f1727cb9 91
halfpitch 0:ff25f1727cb9 92 int main() {
halfpitch 0:ff25f1727cb9 93 //char input[100];
halfpitch 0:ff25f1727cb9 94 rn42.baud(115200);
halfpitch 0:ff25f1727cb9 95 myled1 = 0;
halfpitch 0:ff25f1727cb9 96 myled2 = 0;
halfpitch 0:ff25f1727cb9 97
halfpitch 0:ff25f1727cb9 98 int j=0;
halfpitch 0:ff25f1727cb9 99
halfpitch 0:ff25f1727cb9 100 flipper.attach_us(&flip, 1000); // the address of the function to be attached (flip) and the interval
halfpitch 0:ff25f1727cb9 101 //flipper.attach(&flip, 1);
halfpitch 0:ff25f1727cb9 102 printf("start\n");
halfpitch 0:ff25f1727cb9 103
halfpitch 0:ff25f1727cb9 104 // echo back characters, toggle the LED
halfpitch 0:ff25f1727cb9 105 while (1) {
halfpitch 0:ff25f1727cb9 106 if (rn42.readable()) {
halfpitch 0:ff25f1727cb9 107 int n = rn42.scanf("T%dV%d", &flg_mode, &trigger_y);
halfpitch 0:ff25f1727cb9 108 printf("T%dV%d\n", flg_mode, trigger_y);
halfpitch 0:ff25f1727cb9 109 rn42.getc();//These getc() are for stopping scanf().
halfpitch 0:ff25f1727cb9 110 rn42.getc();
halfpitch 0:ff25f1727cb9 111 //printf("T%dV%d\n", flg_mode, trigger_y);
halfpitch 0:ff25f1727cb9 112 }
halfpitch 0:ff25f1727cb9 113
halfpitch 0:ff25f1727cb9 114
halfpitch 0:ff25f1727cb9 115 if(flg_finish_saving==1){
halfpitch 0:ff25f1727cb9 116 while(j<100){
halfpitch 0:ff25f1727cb9 117 if(rn42.writeable()){
halfpitch 0:ff25f1727cb9 118 printf("%d,%d\n\r", j,ADdata[j]);
halfpitch 0:ff25f1727cb9 119 rn42.printf("%d,\n\r", ADdata[j]);
halfpitch 0:ff25f1727cb9 120 ++j;
halfpitch 0:ff25f1727cb9 121
halfpitch 0:ff25f1727cb9 122 if(j>=100){
halfpitch 0:ff25f1727cb9 123 //flg reset
halfpitch 0:ff25f1727cb9 124 printf("END\n\r");
halfpitch 0:ff25f1727cb9 125 rn42.printf("END\n\r");
halfpitch 0:ff25f1727cb9 126 flg_finish_saving = 0;
halfpitch 0:ff25f1727cb9 127 flg_mode = 0;
halfpitch 0:ff25f1727cb9 128 flg_save = 0;
halfpitch 0:ff25f1727cb9 129
halfpitch 0:ff25f1727cb9 130
halfpitch 0:ff25f1727cb9 131 myled1 = 0;
halfpitch 0:ff25f1727cb9 132 myled2 = 0;
halfpitch 0:ff25f1727cb9 133 myled3 = 0;
halfpitch 0:ff25f1727cb9 134 myled4 = 0;
halfpitch 0:ff25f1727cb9 135
halfpitch 0:ff25f1727cb9 136 }
halfpitch 0:ff25f1727cb9 137 }
halfpitch 0:ff25f1727cb9 138
halfpitch 0:ff25f1727cb9 139 }
halfpitch 0:ff25f1727cb9 140
halfpitch 0:ff25f1727cb9 141 j = 0;
halfpitch 0:ff25f1727cb9 142 }
halfpitch 0:ff25f1727cb9 143 }
halfpitch 0:ff25f1727cb9 144 }