EE202A HW1 ADC Test

Dependencies:   SLCD TSI mbed

Files at this revision

API Documentation at this revision

Comitter:
HaoranX
Date:
Wed Feb 12 22:20:56 2014 +0000
Commit message:
v

Changed in this revision

SLCD.lib Show annotated file Show diff for this revision Revisions of this file
TSI.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SLCD.lib	Wed Feb 12 22:20:56 2014 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/Sissors/code/SLCD/#f70873bc6121
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TSI.lib	Wed Feb 12 22:20:56 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/vsluiter/code/TSI/#4dc2f5a3a731
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Feb 12 22:20:56 2014 +0000
@@ -0,0 +1,73 @@
+#include "mbed.h"
+#include "SLCD.h"
+#include "TSISensor.h"
+
+#define CHART_SIZE 64
+
+Ticker timer;
+AnalogOut vout(PTE30);
+SLCD slcd;
+TSISensor tsi;
+InterruptIn amp_up(SW1);
+InterruptIn amp_down(SW3);
+
+float amplitude = 0;
+float freq = 20;
+static int phase = 0;
+static float sinwave[CHART_SIZE] = {
+    0.5000,0.5490,0.5975,0.6451,0.6913,0.7357,0.7778,0.8172,0.8536,0.8865,
+    0.9157,0.9410,0.9619,0.9785,0.9904,0.9976,1.0000,0.9976,0.9904,0.9785,
+    0.9619,0.9410,0.9157,0.8865,0.8536,0.8172,0.7778,0.7357,0.6913,0.6451,
+    0.5975,0.5490,0.5000,0.4510,0.4025,0.3549,0.3087,0.2643,0.2222,0.1828,
+    0.1464,0.1135,0.0843,0.0590,0.0381,0.0215,0.0096,0.0024,0.0000,0.0024,
+    0.0096,0.0215,0.0381,0.0590,0.0843,0.1135,0.1464,0.1828,0.2222,0.2643,
+    0.3087,0.3549,0.4025,0.4510};
+void timer_int();
+void display(float val);
+void amp_up_int();
+void amp_down_int();
+
+
+void timer_int(){
+    phase++;
+    if(phase >= CHART_SIZE)
+        phase = 0;
+    vout = amplitude*sinwave[phase];
+}
+
+void amp_up_int(){
+    if(amplitude <= 0.95){
+        amplitude += 0.05;
+        display(amplitude*3.3);
+    }
+}
+
+void amp_down_int(){
+    if(amplitude >= 0.05){
+        amplitude -= 0.05;
+        display(amplitude*3.3);
+    }   
+}
+
+void display(float val){
+    char buf[16];
+    int tmp = int(val*100);
+    sprintf(buf,"%d%d%d",tmp/100,(tmp%100)/10,tmp%10);
+    slcd.printf(buf);
+    slcd.Home();
+}
+
+int main(){
+    amp_up.rise(amp_up_int);
+    amp_down.rise(amp_down_int);
+    slcd.DP1(1);
+    display(amplitude*3.3);
+    timer.attach(&timer_int, 1/freq);
+    while(true){
+        if(tsi.readPercentage()!=0){
+            freq = 50 * tsi.readPercentage();
+            timer.attach(&timer_int, 1/freq);
+        }
+        wait(0.05);
+    } 
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Feb 12 22:20:56 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/824293ae5e43
\ No newline at end of file