mirror of
https://github.com/supleed2/ELEC60013-ES-CW2.git
synced 2024-12-23 06:05:51 +00:00
Added triangle and sine
This commit is contained in:
parent
c425de4fa5
commit
c484ebba34
26
src/main.cpp
26
src/main.cpp
|
@ -66,6 +66,24 @@ const unsigned char volumes[6][18] = {
|
||||||
const unsigned char icon_bits[] = {
|
const unsigned char icon_bits[] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0xcc, 0x00, 0xcc, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0xcc, 0x00, 0xcc, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x02, 0x01, 0x02, 0x01, 0xfe, 0x01, 0x00, 0x00};
|
0x00, 0x00, 0x02, 0x01, 0x02, 0x01, 0xfe, 0x01, 0x00, 0x00};
|
||||||
|
const int16_t sineLookUpTable[] = {
|
||||||
|
128,131,134,137,140,143,146,149,152,156,159,162,165,168,171,174,
|
||||||
|
176,179,182,185,188,191,193,196,199,201,204,206,209,211,213,216,
|
||||||
|
218,220,222,224,226,228,230,232,234,236,237,239,240,242,243,245,
|
||||||
|
246,247,248,249,250,251,252,252,253,254,254,255,255,255,255,255,
|
||||||
|
255,255,255,255,255,255,254,254,253,252,252,251,250,249,248,247,
|
||||||
|
246,245,243,242,240,239,237,236,234,232,230,228,226,224,222,220,
|
||||||
|
218,216,213,211,209,206,204,201,199,196,193,191,188,185,182,179,
|
||||||
|
176,174,171,168,165,162,159,156,152,149,146,143,140,137,134,131,
|
||||||
|
128,124,121,118,115,112,109,106,103,99, 96, 93, 90, 87, 84, 81,
|
||||||
|
79, 76, 73, 70, 67, 64, 62, 59, 56, 54, 51, 49, 46, 44, 42, 39,
|
||||||
|
37, 35, 33, 31, 29, 27, 25, 23, 21, 19, 18, 16, 15, 13, 12, 10,
|
||||||
|
9, 8, 7, 6, 5, 4, 3, 3, 2, 1, 1, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 8,
|
||||||
|
9, 10, 12, 13, 15, 16, 18, 19, 21, 23, 25, 27, 29, 31, 33, 35,
|
||||||
|
37, 39, 42, 44, 46, 49, 51, 54, 56, 59, 62, 64, 67, 70, 73, 76,
|
||||||
|
79, 81, 84, 87, 90, 93, 96, 99, 103,106,109,112,115,118,121,124
|
||||||
|
};
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
#pragma region Pin Definitions
|
#pragma region Pin Definitions
|
||||||
|
@ -157,14 +175,14 @@ void sampleISR(){
|
||||||
Vout = phaseAcc >> 16;
|
Vout = phaseAcc >> 16;
|
||||||
}else if(wave==SQUARE){
|
}else if(wave==SQUARE){
|
||||||
if(phaseAcc<0){
|
if(phaseAcc<0){
|
||||||
Vout = 0x8000;
|
Vout = 0x00007FFF;
|
||||||
}else{
|
}else{
|
||||||
Vout = 0;
|
Vout = 0xFFFF8000;
|
||||||
}
|
}
|
||||||
}else if(wave==TRIANGLE){
|
}else if(wave==TRIANGLE){
|
||||||
//TODO
|
Vout = (abs(phaseAcc)-1073741824) >> 15;
|
||||||
}else if(wave==SINE){
|
}else if(wave==SINE){
|
||||||
//TODO
|
Vout = (sineLookUpTable[(uint32_t)phaseAcc>>24]-128)<<8;
|
||||||
}
|
}
|
||||||
Vout = scaleVolume(Vout);
|
Vout = scaleVolume(Vout);
|
||||||
analogWrite(OUTR_PIN, Vout + 128);
|
analogWrite(OUTR_PIN, Vout + 128);
|
||||||
|
|
Loading…
Reference in a new issue