Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:ba6deb20e42e, 2016-03-24 (annotated)
- Committer:
- kikoaac
- Date:
- Thu Mar 24 00:59:25 2016 +0000
- Revision:
- 0:ba6deb20e42e
???????;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kikoaac | 0:ba6deb20e42e | 1 | #include "mbed.h" |
| kikoaac | 0:ba6deb20e42e | 2 | |
| kikoaac | 0:ba6deb20e42e | 3 | PwmOut mypwm(PWM_OUT); |
| kikoaac | 0:ba6deb20e42e | 4 | |
| kikoaac | 0:ba6deb20e42e | 5 | DigitalOut myled(LED1); |
| kikoaac | 0:ba6deb20e42e | 6 | //InterruptIn Propo(A5); |
| kikoaac | 0:ba6deb20e42e | 7 | |
| kikoaac | 0:ba6deb20e42e | 8 | class propoRead |
| kikoaac | 0:ba6deb20e42e | 9 | { |
| kikoaac | 0:ba6deb20e42e | 10 | public: |
| kikoaac | 0:ba6deb20e42e | 11 | |
| kikoaac | 0:ba6deb20e42e | 12 | float High , Sum; |
| kikoaac | 0:ba6deb20e42e | 13 | float Max,Min,Normal,outMax,outMin; |
| kikoaac | 0:ba6deb20e42e | 14 | propoRead(PinName Pin , Timer *T) : Inter(Pin) |
| kikoaac | 0:ba6deb20e42e | 15 | { |
| kikoaac | 0:ba6deb20e42e | 16 | t = T; |
| kikoaac | 0:ba6deb20e42e | 17 | Inter.rise(this,&propoRead::Rise); |
| kikoaac | 0:ba6deb20e42e | 18 | Inter.fall(this,&propoRead::Fall); |
| kikoaac | 0:ba6deb20e42e | 19 | t->start(); |
| kikoaac | 0:ba6deb20e42e | 20 | propoCalibration(); |
| kikoaac | 0:ba6deb20e42e | 21 | outMax = 1; |
| kikoaac | 0:ba6deb20e42e | 22 | outMin = -1; |
| kikoaac | 0:ba6deb20e42e | 23 | } |
| kikoaac | 0:ba6deb20e42e | 24 | void propoCalibration(float max = 1900,float min = 1100,int normal = 1500) |
| kikoaac | 0:ba6deb20e42e | 25 | { |
| kikoaac | 0:ba6deb20e42e | 26 | Max = max-normal; |
| kikoaac | 0:ba6deb20e42e | 27 | Min = min-normal; |
| kikoaac | 0:ba6deb20e42e | 28 | Normal = normal; |
| kikoaac | 0:ba6deb20e42e | 29 | } |
| kikoaac | 0:ba6deb20e42e | 30 | operator float() |
| kikoaac | 0:ba6deb20e42e | 31 | { |
| kikoaac | 0:ba6deb20e42e | 32 | float width = Max-Min; |
| kikoaac | 0:ba6deb20e42e | 33 | float outWidth = outMax - outMin; |
| kikoaac | 0:ba6deb20e42e | 34 | float ratio = outWidth / width; |
| kikoaac | 0:ba6deb20e42e | 35 | |
| kikoaac | 0:ba6deb20e42e | 36 | float ans = ratio * (High - Normal);// outMin; |
| kikoaac | 0:ba6deb20e42e | 37 | if(fabs((double)ans)<0.1) ans=0; |
| kikoaac | 0:ba6deb20e42e | 38 | return ans; |
| kikoaac | 0:ba6deb20e42e | 39 | } |
| kikoaac | 0:ba6deb20e42e | 40 | private: |
| kikoaac | 0:ba6deb20e42e | 41 | |
| kikoaac | 0:ba6deb20e42e | 42 | Timer *t; |
| kikoaac | 0:ba6deb20e42e | 43 | float prevTime; |
| kikoaac | 0:ba6deb20e42e | 44 | float readTime() |
| kikoaac | 0:ba6deb20e42e | 45 | { |
| kikoaac | 0:ba6deb20e42e | 46 | float ans = t->read_us() - prevTime; |
| kikoaac | 0:ba6deb20e42e | 47 | prevTime = t->read_us(); |
| kikoaac | 0:ba6deb20e42e | 48 | return ans; |
| kikoaac | 0:ba6deb20e42e | 49 | } |
| kikoaac | 0:ba6deb20e42e | 50 | void Fall() |
| kikoaac | 0:ba6deb20e42e | 51 | { |
| kikoaac | 0:ba6deb20e42e | 52 | High = readTime(); |
| kikoaac | 0:ba6deb20e42e | 53 | } |
| kikoaac | 0:ba6deb20e42e | 54 | void Rise() |
| kikoaac | 0:ba6deb20e42e | 55 | { |
| kikoaac | 0:ba6deb20e42e | 56 | prevTime = t->read_us(); |
| kikoaac | 0:ba6deb20e42e | 57 | } |
| kikoaac | 0:ba6deb20e42e | 58 | InterruptIn Inter; |
| kikoaac | 0:ba6deb20e42e | 59 | }; |
| kikoaac | 0:ba6deb20e42e | 60 | int main() { |
| kikoaac | 0:ba6deb20e42e | 61 | Timer T; |
| kikoaac | 0:ba6deb20e42e | 62 | propoRead p1(A5,&T); |
| kikoaac | 0:ba6deb20e42e | 63 | /* |
| kikoaac | 0:ba6deb20e42e | 64 | mypwm.period_ms(10); |
| kikoaac | 0:ba6deb20e42e | 65 | mypwm.pulsewidth_ms(1); |
| kikoaac | 0:ba6deb20e42e | 66 | */ |
| kikoaac | 0:ba6deb20e42e | 67 | //printf("pwm set to %.2f %%\n", mypwm.read() * 100); |
| kikoaac | 0:ba6deb20e42e | 68 | |
| kikoaac | 0:ba6deb20e42e | 69 | //t.start(); |
| kikoaac | 0:ba6deb20e42e | 70 | while(1) { |
| kikoaac | 0:ba6deb20e42e | 71 | printf("%f\r\n",(float)p1); |
| kikoaac | 0:ba6deb20e42e | 72 | //wait(1); |
| kikoaac | 0:ba6deb20e42e | 73 | } |
| kikoaac | 0:ba6deb20e42e | 74 | } |