A freq gen
Dependencies: C12832_lcd LM75B mbed
main.cpp@0:606db2d43559, 2016-01-30 (annotated)
- Committer:
- usedbytes
- Date:
- Sat Jan 30 16:53:54 2016 +0000
- Revision:
- 0:606db2d43559
disruptor v1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
usedbytes | 0:606db2d43559 | 1 | #include "mbed.h" |
usedbytes | 0:606db2d43559 | 2 | #include "C12832_lcd/C12832_lcd.h" |
usedbytes | 0:606db2d43559 | 3 | #include "LM75B/LM75B.h" |
usedbytes | 0:606db2d43559 | 4 | |
usedbytes | 0:606db2d43559 | 5 | PwmOut spkr(p26); |
usedbytes | 0:606db2d43559 | 6 | AnalogIn fine(p19); |
usedbytes | 0:606db2d43559 | 7 | AnalogIn coarse(p20); |
usedbytes | 0:606db2d43559 | 8 | C12832_LCD lcd("LCD"); |
usedbytes | 0:606db2d43559 | 9 | |
usedbytes | 0:606db2d43559 | 10 | int main() |
usedbytes | 0:606db2d43559 | 11 | { |
usedbytes | 0:606db2d43559 | 12 | int us, last_us, freq; |
usedbytes | 0:606db2d43559 | 13 | spkr.write(0.5); |
usedbytes | 0:606db2d43559 | 14 | |
usedbytes | 0:606db2d43559 | 15 | while(1) { |
usedbytes | 0:606db2d43559 | 16 | freq = (int)(50000.0 * coarse.read()) + (1000.0 * fine.read()); |
usedbytes | 0:606db2d43559 | 17 | us = 1000000 / freq; |
usedbytes | 0:606db2d43559 | 18 | lcd.locate(0,3); |
usedbytes | 0:606db2d43559 | 19 | lcd.printf("Freq: %5i Hz", freq); |
usedbytes | 0:606db2d43559 | 20 | lcd.locate(0,12); |
usedbytes | 0:606db2d43559 | 21 | lcd.printf(" (%7i us)", us); |
usedbytes | 0:606db2d43559 | 22 | |
usedbytes | 0:606db2d43559 | 23 | if (us != last_us) { |
usedbytes | 0:606db2d43559 | 24 | last_us = us; |
usedbytes | 0:606db2d43559 | 25 | spkr.write(0.5); |
usedbytes | 0:606db2d43559 | 26 | spkr.period_us(us); |
usedbytes | 0:606db2d43559 | 27 | } |
usedbytes | 0:606db2d43559 | 28 | wait(0.01); |
usedbytes | 0:606db2d43559 | 29 | } |
usedbytes | 0:606db2d43559 | 30 | } |