Pancake Library for mbed

Committer:
suu____
Date:
Sat Nov 28 16:06:07 2015 +0000
Revision:
1:2eaa0fea479c
Parent:
0:ee3420f81e2b
Child:
2:a711a6feb092
Line?????Color????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suu____ 0:ee3420f81e2b 1 #include "pancake.hpp"
suu____ 0:ee3420f81e2b 2
suu____ 1:2eaa0fea479c 3 Pancake::Pancake(PinName tx,PinName rx) : pc(tx,rx){
suu____ 1:2eaa0fea479c 4 pc.baud(115200);
suu____ 0:ee3420f81e2b 5 }
suu____ 1:2eaa0fea479c 6
suu____ 1:2eaa0fea479c 7 void Pancake::sound1(uint8_t cn,sound_t &sound){
suu____ 1:2eaa0fea479c 8 uint8_t data[4]={0x0A,cn,sound.octave,sound.toneColor<<4|sound.scale};
suu____ 1:2eaa0fea479c 9 sendCommand(data,4);
suu____ 0:ee3420f81e2b 10 }
suu____ 0:ee3420f81e2b 11
suu____ 1:2eaa0fea479c 12 void Pancake::sound(sound_t sounds[4]){
suu____ 1:2eaa0fea479c 13 uint8_t data[9]={0x09,0,0,0,0,0,0,0,0};
suu____ 1:2eaa0fea479c 14 data[1] = sounds[0].octave;
suu____ 1:2eaa0fea479c 15 data[2] = sounds[0].toneColor<<4|sounds[0].scale;
suu____ 1:2eaa0fea479c 16 data[3] = sounds[1].octave;
suu____ 1:2eaa0fea479c 17 data[4] = sounds[1].toneColor<<4|sounds[1].scale;
suu____ 1:2eaa0fea479c 18 data[5] = sounds[2].octave;
suu____ 1:2eaa0fea479c 19 data[6] = sounds[2].toneColor<<4|sounds[2].scale;
suu____ 1:2eaa0fea479c 20 data[7] = sounds[3].octave;
suu____ 1:2eaa0fea479c 21 data[8] = sounds[3].toneColor<<4|sounds[3].scale;
suu____ 0:ee3420f81e2b 22
suu____ 1:2eaa0fea479c 23 sendCommand(data,9);
suu____ 1:2eaa0fea479c 24 }
suu____ 0:ee3420f81e2b 25
suu____ 1:2eaa0fea479c 26 void Pancake::setMusic(uint8_t channel,bool mode,uint8_t tempo,
suu____ 1:2eaa0fea479c 27 uint8_t toneColor,uint8_t score[],uint8_t scoreSize){
suu____ 1:2eaa0fea479c 28 uint8_t data[3+scoreSize];
suu____ 1:2eaa0fea479c 29 data[0] = 0x0b;//command code
suu____ 1:2eaa0fea479c 30 data[1] = channel;
suu____ 1:2eaa0fea479c 31 data[2] = mode;
suu____ 1:2eaa0fea479c 32 data[3] = (tempo<<4)|toneColor;
suu____ 1:2eaa0fea479c 33 for(uint8_t i= 4;i < scoreSize + 4;i++){
suu____ 1:2eaa0fea479c 34 data[i] = score[i - 4];
suu____ 1:2eaa0fea479c 35 }
suu____ 1:2eaa0fea479c 36 data[scoreSize +4] = 0xFF;
suu____ 1:2eaa0fea479c 37 sendCommand(data,scoreSize + 5);
suu____ 1:2eaa0fea479c 38 }
suu____ 1:2eaa0fea479c 39
suu____ 1:2eaa0fea479c 40 void Pancake::playMusic(){
suu____ 1:2eaa0fea479c 41 uint8_t data[2]={0x0c,0x01};
suu____ 1:2eaa0fea479c 42 sendCommand(data,2);
suu____ 1:2eaa0fea479c 43 }
suu____ 1:2eaa0fea479c 44
suu____ 1:2eaa0fea479c 45 void Pancake::stopMusic(){
suu____ 1:2eaa0fea479c 46 uint8_t data[2]={0x0c,0x00};
suu____ 1:2eaa0fea479c 47 sendCommand(data,2);
suu____ 1:2eaa0fea479c 48 }
suu____ 1:2eaa0fea479c 49
suu____ 1:2eaa0fea479c 50 void Pancake::writeLine(uint8_t sx,uint8_t sy,uint8_t ex,uint8_t ey,
suu____ 1:2eaa0fea479c 51 P_Color color){
suu____ 1:2eaa0fea479c 52 uint8_t data[6] = {0x01,sx,sy,ex,ey,uint8_t(color)};
suu____ 1:2eaa0fea479c 53 sendCommand(data,6);
suu____ 1:2eaa0fea479c 54 }
suu____ 1:2eaa0fea479c 55
suu____ 1:2eaa0fea479c 56
suu____ 1:2eaa0fea479c 57 void Pancake::sendCommand(uint8_t data[],uint8_t length)
suu____ 0:ee3420f81e2b 58 {
suu____ 0:ee3420f81e2b 59 uint8_t i = 0;
suu____ 1:2eaa0fea479c 60 pc.putc(0x80);
suu____ 1:2eaa0fea479c 61 pc.putc(length + 2);
suu____ 0:ee3420f81e2b 62
suu____ 0:ee3420f81e2b 63 while(i < length ){
suu____ 1:2eaa0fea479c 64 pc.putc(data[i]);
suu____ 0:ee3420f81e2b 65 i++;
suu____ 0:ee3420f81e2b 66 }
suu____ 0:ee3420f81e2b 67 }