Programma voor HIDScope (lecture 3 tutorial)

Dependencies:   mbed QEI HIDScope biquadFilter MODSERIAL FastPWM

Committer:
freek100
Date:
Fri Sep 20 12:46:54 2019 +0000
Revision:
0:a75335365b8c
Eerste versie voor assignment 2 van lecture 3 tutorial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
freek100 0:a75335365b8c 1 #include "mbed.h"
freek100 0:a75335365b8c 2 #include "HIDScope.h"
freek100 0:a75335365b8c 3 //#include "QEI.h"
freek100 0:a75335365b8c 4 #include "MODSERIAL.h"
freek100 0:a75335365b8c 5 //#include "BiQuad.h"
freek100 0:a75335365b8c 6 //#include "FastPWM.h"
freek100 0:a75335365b8c 7 #include <string>
freek100 0:a75335365b8c 8
freek100 0:a75335365b8c 9
freek100 0:a75335365b8c 10 DigitalOut ledr(LED_RED);
freek100 0:a75335365b8c 11 DigitalOut ledg(LED_GREEN);
freek100 0:a75335365b8c 12 DigitalOut ledb(LED_BLUE);
freek100 0:a75335365b8c 13 PwmOut led1(D10);
freek100 0:a75335365b8c 14 DigitalIn button1(D2);
freek100 0:a75335365b8c 15 AnalogIn potmeter(A1);
freek100 0:a75335365b8c 16 DigitalIn sw(SW2);
freek100 0:a75335365b8c 17 MODSERIAL pc(USBTX, USBRX);
freek100 0:a75335365b8c 18
freek100 0:a75335365b8c 19 HIDScope scope(2); //Going to send 2 channels of data. To access data go to 'http:/localhost:18082/' after starting HIDScope application.
freek100 0:a75335365b8c 20 Ticker AInTicker;
freek100 0:a75335365b8c 21 AnalogIn aIn1(A1);
freek100 0:a75335365b8c 22
freek100 0:a75335365b8c 23 volatile float x;
freek100 0:a75335365b8c 24 volatile float x_prev=0;
freek100 0:a75335365b8c 25 volatile float y; //filtered 'output' of Read Analog
freek100 0:a75335365b8c 26
freek100 0:a75335365b8c 27 void ReadAnalogInAndFilter()
freek100 0:a75335365b8c 28 {
freek100 0:a75335365b8c 29 x=aIn1; //capture data
freek100 0:a75335365b8c 30 scope.set(0,x); //store data in first element of scope memory (store 1st data point)
freek100 0:a75335365b8c 31 y=(x_prev+x)/2.0; //averaging filter
freek100 0:a75335365b8c 32 scope.set(1,y); //store data in second element of scope memory (store second data point)
freek100 0:a75335365b8c 33 x_prev= x; //prepare for next round
freek100 0:a75335365b8c 34
freek100 0:a75335365b8c 35 scope.send(); //send what's in scope memory to PC
freek100 0:a75335365b8c 36 }
freek100 0:a75335365b8c 37
freek100 0:a75335365b8c 38 int main()
freek100 0:a75335365b8c 39 {
freek100 0:a75335365b8c 40 pc.baud(115200);
freek100 0:a75335365b8c 41 pc.printf("\r\nStarting...\r\n\r\n");
freek100 0:a75335365b8c 42
freek100 0:a75335365b8c 43 AInTicker.attach(&ReadAnalogInAndFilter, 0.01);
freek100 0:a75335365b8c 44 while(true){/*do nothing. You could use y here if you wish*/};
freek100 0:a75335365b8c 45
freek100 0:a75335365b8c 46 }