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:4df3adbe8435, 2016-03-10 (annotated)
- Committer:
- beaglescout007
- Date:
- Thu Mar 10 14:14:41 2016 +0000
- Revision:
- 0:4df3adbe8435
- Child:
- 1:b018dbb87a88
Release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
beaglescout007 | 0:4df3adbe8435 | 1 | #include "mbed.h" |
beaglescout007 | 0:4df3adbe8435 | 2 | |
beaglescout007 | 0:4df3adbe8435 | 3 | // DAC 20khz |
beaglescout007 | 0:4df3adbe8435 | 4 | #define DAC_Frequency 20000 |
beaglescout007 | 0:4df3adbe8435 | 5 | |
beaglescout007 | 0:4df3adbe8435 | 6 | AnalogOut dac(PA_4); |
beaglescout007 | 0:4df3adbe8435 | 7 | |
beaglescout007 | 0:4df3adbe8435 | 8 | DigitalIn btn(USER_BUTTON); |
beaglescout007 | 0:4df3adbe8435 | 9 | |
beaglescout007 | 0:4df3adbe8435 | 10 | Timer tim; |
beaglescout007 | 0:4df3adbe8435 | 11 | Ticker tic; |
beaglescout007 | 0:4df3adbe8435 | 12 | |
beaglescout007 | 0:4df3adbe8435 | 13 | // C D E F G A B C |
beaglescout007 | 0:4df3adbe8435 | 14 | int freq_table[] = {262, 293, 330, 349, 392, 440, 493, 523}; |
beaglescout007 | 0:4df3adbe8435 | 15 | int sel; |
beaglescout007 | 0:4df3adbe8435 | 16 | |
beaglescout007 | 0:4df3adbe8435 | 17 | void DAC_Int(void) |
beaglescout007 | 0:4df3adbe8435 | 18 | { |
beaglescout007 | 0:4df3adbe8435 | 19 | int period = 1000000 / freq_table[sel]; |
beaglescout007 | 0:4df3adbe8435 | 20 | int pos = tim.read_us() % period; |
beaglescout007 | 0:4df3adbe8435 | 21 | |
beaglescout007 | 0:4df3adbe8435 | 22 | // Square wave |
beaglescout007 | 0:4df3adbe8435 | 23 | dac = pos > (period / 2) ? 1 : 0; |
beaglescout007 | 0:4df3adbe8435 | 24 | } |
beaglescout007 | 0:4df3adbe8435 | 25 | |
beaglescout007 | 0:4df3adbe8435 | 26 | int main() |
beaglescout007 | 0:4df3adbe8435 | 27 | { |
beaglescout007 | 0:4df3adbe8435 | 28 | sel = 0; |
beaglescout007 | 0:4df3adbe8435 | 29 | |
beaglescout007 | 0:4df3adbe8435 | 30 | tim.start(); |
beaglescout007 | 0:4df3adbe8435 | 31 | |
beaglescout007 | 0:4df3adbe8435 | 32 | tic.attach_us(&DAC_Int, 1000000 / DAC_Frequency); |
beaglescout007 | 0:4df3adbe8435 | 33 | |
beaglescout007 | 0:4df3adbe8435 | 34 | while(1) |
beaglescout007 | 0:4df3adbe8435 | 35 | { |
beaglescout007 | 0:4df3adbe8435 | 36 | if (btn == 0) |
beaglescout007 | 0:4df3adbe8435 | 37 | { |
beaglescout007 | 0:4df3adbe8435 | 38 | sel++; |
beaglescout007 | 0:4df3adbe8435 | 39 | if (sel > 7) sel = 0; |
beaglescout007 | 0:4df3adbe8435 | 40 | wait(0.5); |
beaglescout007 | 0:4df3adbe8435 | 41 | } |
beaglescout007 | 0:4df3adbe8435 | 42 | } |
beaglescout007 | 0:4df3adbe8435 | 43 | } |