Leong Kum Loong (NYP) / Mbed 2 deprecated Tone_Example

Dependencies:   C12832 mbed tone_h

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "tone.h"
00003 #include "C12832.h"
00004 
00005 /*
00006     Written by Leong Kum Loong.
00007     20 Nov 2017, REV. 2
00008     
00009     When tone.h reference is included, DO NOT declare pin p26 as it is used by my library.
00010 */
00011 
00012 C12832 lcd(p5, p7, p6, p8, p11);
00013 DigitalIn up(p15), down(p12), left(p13), right(p16), ctr(p14);
00014 
00015 int frequency = 500;    //Preset tone frequency.
00016 
00017 void writeMenu(){
00018     lcd.cls();
00019     lcd.locate(0,1);
00020     lcd.printf("UP/DOWN for example.");
00021     lcd.locate(0,12);
00022     lcd.printf("LEFT/RIGHT set frequency.");
00023     lcd.locate(0,22);
00024     lcd.printf("BUTTON to PLAY/STOP.");
00025 }
00026 
00027 void writeFreq(){
00028     lcd.cls();
00029     lcd.locate(0,1);
00030     lcd.printf("Frequency: %dHz", frequency);
00031 }
00032 
00033 int main() {
00034     writeMenu();
00035     int play;
00036     
00037     while(1) {
00038         if(up){
00039             mario_example();
00040         }else if(down){
00041             starwars_example();    
00042         }else if(left){
00043             int i=0;
00044             do{
00045                 while(left){
00046                     if(frequency > 0)frequency-=100;
00047                     wait_ms(100);
00048                     writeFreq();
00049                 }
00050                 wait_ms(300);
00051                 while(i<20){
00052                     if(left){
00053                         break;
00054                     }else if(right){
00055                         i=20;
00056                         break;
00057                     }
00058                     wait_ms(100);
00059                     i++;
00060                 }
00061             } while(i<20);
00062             writeMenu();
00063         }else if(right){
00064             int i=0;
00065             do{
00066                 while(right){
00067                     if(frequency < 20000)frequency+=100;
00068                     wait_ms(100);
00069                     writeFreq();
00070                 }
00071                 wait_ms(300);
00072                 while(i<20){
00073                     if(right){
00074                         break;
00075                     }else if(left){
00076                         i=20;
00077                         break;
00078                     }
00079                     wait_ms(100);
00080                     i++;
00081                 }
00082             }while(i<20);
00083             writeMenu();
00084         }else if(ctr){
00085             while(ctr);
00086             wait_ms(300);
00087             play=!play;
00088             if(play){
00089                 tone(frequency);
00090             }else{
00091                 noTone();
00092             }
00093         }
00094     }
00095 }