Pancake Library for mbed
pancake.cpp@2:a711a6feb092, 2015-11-28 (annotated)
- Committer:
- suu____
- Date:
- Sat Nov 28 16:33:24 2015 +0000
- Revision:
- 2:a711a6feb092
- Parent:
- 1:2eaa0fea479c
- Child:
- 3:65314d2d33bb
circle??
Who changed what in which revision?
User | Revision | Line number | New 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____ | 2:a711a6feb092 | 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____ | 2:a711a6feb092 | 50 | void Pancake::clearScreen(P_Color color){ |
suu____ | 2:a711a6feb092 | 51 | uint8_t data[2] = {0x00,uint8_t(color)}; |
suu____ | 2:a711a6feb092 | 52 | sendCommand(data,2); |
suu____ | 2:a711a6feb092 | 53 | } |
suu____ | 2:a711a6feb092 | 54 | |
suu____ | 2:a711a6feb092 | 55 | void Pancake::writeLine(uint8_t sx,uint8_t sy,uint8_t ex,uint8_t ey, |
suu____ | 1:2eaa0fea479c | 56 | P_Color color){ |
suu____ | 1:2eaa0fea479c | 57 | uint8_t data[6] = {0x01,sx,sy,ex,ey,uint8_t(color)}; |
suu____ | 1:2eaa0fea479c | 58 | sendCommand(data,6); |
suu____ | 2:a711a6feb092 | 59 | } |
suu____ | 2:a711a6feb092 | 60 | |
suu____ | 2:a711a6feb092 | 61 | void Pancake::writeCircle(uint8_t centerx,uint8_t centery,uint8_t radius,P_Color color){ |
suu____ | 2:a711a6feb092 | 62 | uint8_t data[5] = {0x0e,centerx,centery,radius,uint8_t(color)}; |
suu____ | 2:a711a6feb092 | 63 | sendCommand(data,5); |
suu____ | 2:a711a6feb092 | 64 | } |
suu____ | 2:a711a6feb092 | 65 | |
suu____ | 2:a711a6feb092 | 66 | |
suu____ | 1:2eaa0fea479c | 67 | |
suu____ | 1:2eaa0fea479c | 68 | |
suu____ | 1:2eaa0fea479c | 69 | void Pancake::sendCommand(uint8_t data[],uint8_t length) |
suu____ | 0:ee3420f81e2b | 70 | { |
suu____ | 0:ee3420f81e2b | 71 | uint8_t i = 0; |
suu____ | 1:2eaa0fea479c | 72 | pc.putc(0x80); |
suu____ | 1:2eaa0fea479c | 73 | pc.putc(length + 2); |
suu____ | 0:ee3420f81e2b | 74 | |
suu____ | 0:ee3420f81e2b | 75 | while(i < length ){ |
suu____ | 1:2eaa0fea479c | 76 | pc.putc(data[i]); |
suu____ | 0:ee3420f81e2b | 77 | i++; |
suu____ | 0:ee3420f81e2b | 78 | } |
suu____ | 0:ee3420f81e2b | 79 | } |