AUP_Lab7_RTOS

Dependencies:   C12832 MMA7660 mbed-rtos mbed

Fork of AUP_Lab6_Music by Lei Lei

main.cpp

Committer:
BrentLei
Date:
2015-07-08
Revision:
3:640558c1c0d3
Parent:
2:09ee85ab1717
Child:
4:dbce53c4e44d

File content as of revision 3:640558c1c0d3:

#include "mbed.h"
#include "C12832.h"
#include "MMA7660.h"

// 添加旋律播放相关文件
#include "SongPlayer.h"

// 旋律数据
float note[18]= {1568.0,1396.9,1244.5,1244.5,1396.9,1568.0,1568.0,1568.0,1396.9,
                 1244.5,1396.9,1568.0,1396.9,1244.5,1174.7,1244.5,1244.5, 0.0
                };
float duration[18]= {0.48,0.24,0.72,0.48,0.24,0.48,0.24,0.24,0.24,
                     0.24,0.24,0.24,0.24,0.48,0.24,0.48,0.48, 0.0
                    };

PwmOut led(D5);
DigitalIn button_up(A2);
DigitalIn button_center(D4);
DigitalIn button_down(A3);
C12832 lcd(D11, D13, D12, D7, D10);
MMA7660 MMA(D14, D15);

// 初始化D6引脚作为PWM用于驱动扬声器
SongPlayer mySpeaker(D6);

double brightness = 1.0;
double brightness_inc = 0.1;

int main()
{
    int bt_flag = 0;
    lcd.cls();
    led.write(brightness);
    
    // 播放旋律
    mySpeaker.PlaySong(note,duration,0.05);
    
    while (1) {
        bt_flag = 1;
        if(button_up==1)
            brightness -= brightness_inc;
        else if(button_down==1)
            brightness += brightness_inc;
        else if(button_center==1)
            brightness = (brightness>0.5)?1.0:0.0;
        else
            bt_flag = 0;
        if(bt_flag==1)
        {
            brightness = (brightness>1.0)?0.0:brightness;
            brightness = (brightness<0.0)?1.0:brightness;
            led.write(brightness);
        }
        lcd.locate(0, 0);
        lcd.printf("Brightness = %.1f\r\n", 1.0 - brightness);
        lcd.printf("x=%.2f y=%.2f z=%.2f", MMA.x(), MMA.y(), MMA.z());
        wait(0.2);
    }
}