#define F_CPU 14745600 #include #include #include #include #include const int wavLength = 5514; unsigned char wav_data[] PROGMEM = { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 128, 129, 129, 129, 130, 129, 130, 130, 131, 131, 131, 131, 132, 132, 132, 131, 131, 131, 131, 130, 130, 131, 131, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 127, 125, 124, 124, 123, 121, 119, 118, 118, 117, 116, 116, 116, 117, 119, 120, 121, 124, 128, 132, 136, 139, 141, 144, 149, 153, 156, 158, 160, 162, 162, 163, 163, 161, 161, 163, 161, 152, 141, 132, 127, 119, 110, 104, 101, 100, 100, 100, 100, 98, 96, 93, 91, 91, 88, 84, 81, 82, 83, 84, 84, 86, 92, 99, 106, 113, 125, 140, 151, 154, 166, 182, 193, 199, 204, 209, 212, 212, 212, 191, 137, 125, 161, 145, 104, 98, 106, 119, 125, 132, 128, 120, 144, 159, 136, 115, 106, 99, 83, 77, 72, 52, 52, 67, 74, 73, 75, 87, 100, 111, 122, 124, 126, 140, 157, 159, 153, 164, 186, 195, 201, 211, 217, 217, 207, 171, 148, 170, 164, 126, 105, 102, 110, 112, 112, 114, 108, 126, 147, 140, 128, 122, 120, 108, 96, 88, 70, 57, 59, 61, 59, 56, 63, 78, 93, 108, 118, 126, 143, 166, 176, 174, 181, 201, 210, 211, 217, 219, 202, 170, 145, 158, 160, 129, 113, 108, 110, 118, 118, 116, 114, 125, 141, 140, 130, 128, 126, 117, 105, 95, 84, 72, 68, 66, 62, 60, 63, 72, 83, 96, 109, 120, 135, 156, 172, 176, 185, 204, 213, 216, 222, 219, 197, 161, 154, 171, 147, 112, 105, 101, 101, 106, 103, 100, 106, 126, 140, 134, 128, 136, 138, 128, 117, 104, 92, 84, 76, 66, 56, 51, 56, 63, 69, 81, 94, 111, 131, 152, 167, 178, 194, 215, 228, 233, 239, 232, 202, 171, 178, 178, 138, 110, 104, 94, 88, 87, 79, 77, 91, 110, 120, 120, 124, 139, 144, 137, 132, 126, 115, 107, 97, 82, 68, 59, 58, 59, 59, 67, 81, 96, 116, 136, 153, 171, 194, 215, 230, 244, 251, 243, 218, 204, 210, 193, 152, 127, 117, 100, 86, 74, 58, 55, 67, 78, 80, 83, 93, 109, 123, 126, 128, 128, 128, 129, 127, 114, 99, 94, 93, 88, 83, 82, 88, 98, 111, 124, 136, 151, 172, 197, 214, 218, 214, 213, 224, 226, 206, 181, 166, 155, 140, 119, 92, 72, 66, 64, 56, 45, 40, 47, 62, 74, 75, 74, 85, 102, 111, 108, 104, 108, 117, 124, 123, 122, 128, 138, 150, 157, 160, 172, 193, 204, 190, 178, 196, 213, 196, 174, 169, 163, 154, 150, 135, 112, 106, 113, 107, 94, 88, 86, 87, 89, 85, 80, 81, 85, 87, 88, 86, 82, 86, 95, 98, 98, 103, 110, 119, 129, 137, 140, 146, 160, 174, 183, 188, 189, 183, 189, 205, 201, 178, 167, 173, 171, 161, 150, 135, 126, 127, 126, 114, 104, 100, 96, 94, 92, 84, 76, 80, 84, 81, 77, 77, 79, 86, 94, 96, 96, 102, 113, 123, 129, 131, 132, 141, 154, 161, 164, 170, 179, 178, 175, 184, 189, 180, 169, 171, 171, 160, 149, 144, 138, 131, 129, 126, 117, 111, 108, 104, 102, 100, 93, 88, 92, 93, 87, 84, 84, 85, 90, 94, 93, 93, 101, 111, 118, 122, 126, 127, 128, 134, 145, 149, 151, 158, 167, 173, 171, 167, 174, 185, 184, 174, 170, 170, 164, 159, 153, 138, 128, 128, 128, 121, 110, 103, 98, 98, 100, 94, 83, 79, 85, 86, 83, 78, 74, 77, 86, 89, 85, 87, 97, 107, 114, 117, 117, 122, 134, 139, 138, 143, 151, 155, 161, 170, 175, 172, 170, 179, 190, 189, 179, 172, 172, 170, 163, 153, 139, 129, 131, 132, 122, 110, 106, 106, 106, 106, 103, 95, 92, 96, 98, 94, 89, 87, 90, 93, 94, 92, 89, 91, 102, 111, 109, 107, 111, 121, 131, 132, 132, 139, 147, 153, 157, 161, 163, 166, 168, 168, 173, 176, 174, 170, 171, 170, 163, 158, 153, 144, 138, 137, 132, 124, 121, 120, 115, 111, 111, 108, 103, 103, 103, 100, 96, 93, 88, 88, 92, 90, 87, 90, 95, 99, 103, 109, 111, 113, 123, 129, 130, 130, 136, 141, 143, 147, 150, 150, 154, 163, 165, 162, 163, 171, 176, 175, 171, 170, 169, 168, 166, 159, 149, 144, 143, 139, 131, 126, 119, 113, 109, 105, 101, 94, 90, 89, 87, 86, 84, 82, 84, 89, 91, 91, 93, 98, 103, 107, 109, 110, 112, 118, 123, 125, 126, 128, 131, 136, 142, 145, 148, 154, 160, 165, 170, 170, 168, 175, 182, 182, 176, 174, 173, 166, 161, 157, 148, 136, 133, 131, 122, 114, 109, 103, 100, 101, 99, 91, 88, 91, 92, 88, 85, 83, 84, 88, 90, 88, 87, 91, 96, 101, 105, 106, 109, 117, 126, 129, 130, 135, 143, 149, 153, 155, 158, 162, 164, 163, 164, 167, 167, 163, 161, 161, 162, 161, 158, 154, 153, 152, 150, 147, 142, 137, 133, 130, 126, 119, 113, 108, 104, 100, 95, 91, 87, 87, 87, 86, 85, 87, 89, 93, 97, 100, 103, 108, 114, 119, 122, 125, 126, 127, 131, 134, 133, 131, 133, 135, 137, 138, 137, 138, 142, 148, 150, 152, 155, 160, 164, 167, 165, 165, 167, 169, 167, 162, 158, 153, 150, 147, 141, 133, 128, 126, 123, 118, 114, 110, 107, 107, 108, 105, 101, 99, 100, 101, 100, 97, 95, 96, 99, 99, 97, 95, 97, 100, 103, 104, 105, 106, 112, 117, 120, 120, 123, 128, 132, 137, 139, 140, 143, 149, 154, 156, 159, 163, 167, 172, 175, 174, 174, 178, 180, 176, 173, 172, 167, 160, 157, 152, 142, 134, 129, 123, 115, 110, 105, 97, 92, 91, 88, 84, 82, 82, 82, 84, 85, 85, 86, 89, 93, 96, 98, 101, 104, 108, 112, 115, 116, 118, 122, 126, 128, 131, 133, 135, 138, 142, 146, 149, 150, 152, 157, 161, 164, 165, 167, 171, 174, 175, 172, 170, 171, 172, 169, 163, 158, 152, 148, 144, 138, 128, 121, 116, 112, 106, 100, 94, 90, 88, 87, 86, 83, 82, 83, 86, 89, 91, 93, 96, 101, 105, 108, 111, 114, 116, 118, 122, 123, 122, 123, 125, 126, 127, 127, 127, 128, 129, 132, 134, 137, 138, 141, 145, 151, 155, 158, 162, 166, 171, 175, 175, 174, 175, 178, 178, 174, 169, 164, 158, 154, 149, 141, 132, 126, 121, 115, 109, 102, 95, 91, 89, 88, 84, 82, 82, 83, 85, 87, 88, 90, 93, 98, 102, 104, 107, 109, 111, 114, 116, 117, 117, 118, 119, 119, 119, 120, 121, 122, 124, 127, 130, 135, 139, 142, 147, 155, 163, 168, 173, 181, 193, 201, 199, 195, 198, 202, 201, 196, 185, 173, 162, 153, 143, 128, 112, 100, 94, 87, 77, 72, 68, 66, 71, 79, 82, 83, 91, 103, 112, 119, 124, 123, 124, 130, 134, 128, 119, 113, 109, 104, 99, 91, 82, 80, 83, 85, 86, 90, 97, 108, 121, 132, 142, 154, 169, 182, 190, 197, 208, 216, 222, 227, 229, 228, 228, 223, 202, 179, 173, 168, 146, 124, 109, 93, 83, 82, 78, 67, 63, 72, 84, 90, 95, 102, 109, 118, 129, 133, 128, 124, 125, 124, 118, 109, 99, 90, 85, 81, 74, 69, 69, 73, 78, 83, 88, 92, 99, 108, 118, 122, 124, 128, 132, 136, 137, 136, 136, 138, 145, 154, 158, 158, 166, 180, 193, 201, 210, 216, 222, 231, 232, 216, 191, 184, 181, 161, 136, 115, 95, 81, 77, 74, 64, 57, 65, 81, 92, 101, 110, 118, 126, 137, 143, 139, 129, 125, 122, 114, 104, 93, 82, 73, 69, 69, 70, 70, 76, 86, 95, 104, 111, 116, 121, 127, 130, 129, 127, 125, 124, 123, 122, 121, 121, 128, 138, 150, 157, 164, 179, 195, 207, 218, 226, 230, 233, 236, 233, 215, 185, 171, 165, 145, 122, 102, 87, 78, 77, 82, 83, 81, 91, 107, 121, 128, 133, 135, 134, 135, 135, 128, 112, 98, 91, 84, 76, 70, 65, 61, 62, 71, 82, 88, 94, 103, 111, 117, 120, 119, 116, 113, 112, 109, 104, 100, 100, 103, 107, 113, 121, 131, 144, 160, 174, 182, 191, 203, 213, 219, 222, 223, 220, 218, 216, 212, 194, 166, 154, 152, 140, 124, 111, 102, 97, 98, 106, 107, 102, 104, 113, 121, 123, 122, 118, 112, 108, 108, 103, 92, 82, 79, 79, 79, 80, 81, 79, 77, 85, 96, 100, 100, 101, 103, 104, 104, 103, 100, 96, 96, 100, 102, 104, 108, 115, 123, 130, 140, 149, 157, 169, 180, 186, 190, 195, 203, 208, 211, 214, 216, 214, 214, 216, 211, 194, 174, 166, 163, 150, 133, 120, 109, 102, 100, 103, 101, 94, 95, 102, 109, 110, 110, 109, 105, 102, 103, 101, 91, 82, 79, 78, 77, 76, 75, 71, 70, 79, 87, 91, 92, 94, 97, 100, 103, 105, 104, 102, 104, 108, 111, 114, 118, 124, 129, 136, 146, 157, 167, 178, 187, 194, 201, 211, 219, 222, 226, 229, 230, 230, 229, 228, 222, 200, 175, 166, 161, 146, 127, 110, 99, 91, 87, 93, 91, 85, 86, 93, 101, 102, 101, 100, 95, 90, 90, 88, 79, 69, 65, 66, 67, 68, 69, 67, 66, 76, 88, 93, 95, 95, 97, 100, 102, 104, 103, 99, 100, 105, 109, 114, 119, 125, 130, 137, 149, 160, 170, 180, 189, 195, 201, 210, 218, 221, 223, 227, 229, 228, 227, 227, 226, 215, 191, 169, 162, 154, 138, 119, 103, 91, 83, 82, 86, 84, 79, 81, 88, 96, 99, 99, 98, 93, 90, 91, 89, 82, 74, 70, 71, 72, 73, 73, 70, 71, 81, 91, 96, 98, 98, 100, 102, 105, 109, 107, 105, 106, 110, 115, 121, 126, 131, 137, 144, 157, 168, 176, 185, 192, 199, 206, 212, 218, 220, 221, 224, 224, 223, 220, 219, 218, 211, 191, 167, 156, 151, 138, 122, 105, 93, 85, 81, 86, 89, 83, 82, 87, 96, 101, 101, 100, 96, 90, 88, 88, 83, 73, 67, 66, 68, 69, 69, 69, 68, 75, 85, 94, 99, 100, 102, 106, 109, 113, 115, 113, 112, 115, 119, 124, 128, 129, 133, 139, 146, 154, 162, 170, 176, 182, 189, 195, 202, 207, 210, 214, 218, 219, 218, 218, 219, 220, 213, 195, 172, 159, 154, 141, 123, 105, 91, 82, 76, 78, 79, 75, 72, 77, 85, 91, 93, 94, 92, 89, 87, 88, 87, 79, 73, 71, 72, 73, 74, 74, 73, 77, 86, 95, 101, 103, 104, 108, 112, 116, 119, 117, 114, 114, 117, 122, 125, 127, 128, 132, 139, 150, 159, 168, 175, 182, 189, 199, 207, 213, 217, 220, 223, 223, 221, 220, 220, 218, 211, 195, 172, 155, 149, 140, 124, 105, 90, 83, 77, 78, 82, 80, 76, 78, 86, 94, 97, 96, 95, 92, 88, 89, 89, 84, 78, 75, 76, 79, 79, 79, 80, 83, 91, 99, 106, 108, 109, 110, 112, 113, 114, 113, 110, 108, 109, 112, 117, 121, 125, 129, 136, 147, 159, 170, 179, 186, 192, 199, 208, 213, 215, 216, 218, 218, 215, 214, 214, 212, 208, 201, 185, 164, 153, 148, 138, 122, 104, 92, 85, 78, 79, 81, 76, 72, 75, 84, 90, 92, 93, 93, 91, 90, 93, 93, 88, 82, 81, 83, 85, 82, 80, 81, 84, 89, 96, 99, 99, 99, 101, 104, 106, 107, 107, 107, 108, 111, 116, 122, 126, 129, 135, 143, 152, 162, 171, 179, 184, 189, 197, 204, 209, 212, 215, 217, 216, 215, 215, 215, 214, 209, 201, 186, 165, 152, 147, 135, 118, 99, 88, 83, 76, 75, 78, 75, 72, 76, 85, 93, 94, 95, 97, 95, 92, 95, 96, 91, 85, 81, 83, 84, 80, 78, 79, 80, 83, 90, 95, 96, 95, 97, 101, 104, 106, 109, 110, 109, 112, 119, 126, 128, 130, 136, 144, 152, 161, 171, 178, 182, 188, 197, 205, 210, 213, 216, 217, 218, 218, 218, 218, 215, 210, 205, 192, 169, 153, 147, 137, 121, 102, 91, 84, 76, 74, 79, 78, 74, 76, 85, 94, 97, 98, 100, 99, 96, 97, 99, 96, 89, 83, 83, 83, 76, 71, 73, 76, 77, 81, 86, 90, 91, 94, 100, 103, 104, 108, 111, 112, 114, 119, 125, 128, 129, 134, 141, 148, 156, 166, 174, 180, 186, 194, 202, 208, 213, 217, 220, 220, 218, 218, 218, 218, 214, 207, 199, 181, 160, 149, 143, 130, 112, 95, 87, 80, 74, 76, 79, 77, 74, 79, 90, 97, 98, 99, 101, 99, 96, 97, 98, 93, 84, 78, 77, 74, 67, 66, 69, 70, 73, 78, 85, 90, 91, 95, 102, 105, 108, 112, 114, 114, 116, 122, 128, 128, 130, 137, 145, 153, 163, 172, 180, 185, 192, 202, 211, 216, 220, 223, 224, 223, 223, 222, 221, 217, 213, 207, 194, 172, 155, 148, 138, 122, 104, 93, 86, 78, 75, 78, 79, 77, 77, 84, 93, 97, 98, 100, 100, 97, 95, 95, 91, 83, 76, 74, 71, 64, 61, 63, 66, 68, 73, 79, 85, 88, 92, 99, 103, 106, 110, 112, 113, 115, 118, 124, 127, 128, 133, 141, 150, 159, 168, 177, 184, 191, 200, 210, 215, 219, 223, 226, 226, 223, 222, 223, 221, 217, 211, 201, 181, 159, 149, 143, 130, 111, 95, 86, 79, 73, 75, 79, 77, 74, 78, 89, 95, 97, 98, 100, 98, 93, 92, 91, 86, 78, 72, 69, 65, 60, 60, 64, 67, 70, 74, 82, 88, 90, 95, 100, 104, 107, 110, 112, 114, 116, 120, 125, 128, 130, 137, 145, 154, 163, 173, 182, 190, 197, 207, 214, 220, 225, 228, 229, 228, 226, 226, 225, 223, 218, 209, 192, 169, 153, 147, 137, 120, 102, 90, 82, 75, 74, 78, 80, 76, 76, 84, 93, 98, 100, 101, 100, 93, 89, 90, 89, 81, 72, 67, 63, 58, 57, 62, 66, 67, 70, 78, 86, 90, 94, 99, 103, 105, 109, 113, 116, 116, 119, 124, 128, 130, 136, 145, 154, 163, 172, 182, 190, 198, 208, 217, 223, 228, 232, 233, 232, 230, 229, 229, 226, 222, 212, 196, 173, 155, 148, 139, 122, 105, 91, 81, 75, 73, 78, 80, 77, 76, 82, 91, 97, 100, 101, 99, 92, 87, 89, 89, 81, 72, 66, 61, 56, 56, 61, 64, 65, 67, 74, 83, 88, 92, 97, 101, 104, 108, 112, 116, 117, 119, 124, 128, 131, 137, 145, 155, 163, 172, 182, 191, 200, 209, 218, 225, 229, 232, 234, 234, 233, 231, 230, 227, 221, 212, 195, 172, 155, 146, 135, 120, 103, 92, 84, 76, 74, 79, 82, 79, 79, 85, 94, 99, 101, 103, 102, 96, 90, 91, 90, 84, 74, 68, 63, 57, 56, 61, 66, 67, 68, 75, 82, 87, 92, 99, 103, 106, 109, 114, 118, 120, 122, 126, 129, 132, 137, 146, 156, 164, 171, 181, 190, 199, 209, 218, 224, 228, 230, 233, 233, 231, 230, 229, 225, 217, 205, 186, 164, 150, 141, 128, 112, 97, 86, 77, 71, 72, 78, 80, 79, 80, 87, 95, 100, 103, 106, 103, 96, 91, 91, 90, 83, 74, 65, 59, 54, 55, 60, 64, 65, 67, 74, 81, 87, 94, 101, 106, 108, 112, 117, 122, 124, 126, 128, 131, 134, 141, 151, 160, 167, 175, 184, 194, 204, 214, 223, 230, 232, 234, 236, 237, 235, 233, 231, 226, 216, 197, 174, 155, 145, 132, 117, 102, 87, 76, 68, 66, 73, 78, 77, 78, 83, 91, 97, 103, 108, 108, 102, 96, 95, 92, 88, 81, 72, 63, 56, 54, 57, 61, 63, 65, 69, 75, 82, 91, 100, 106, 108, 111, 116, 121, 125, 127, 129, 130, 131, 136, 144, 153, 160, 167, 175, 183, 193, 204, 215, 222, 226, 228, 230, 231, 231, 230, 228, 223, 214, 199, 177, 156, 144, 133, 120, 105, 91, 79, 70, 65, 70, 77, 79, 79, 83, 89, 97, 103, 109, 113, 108, 101, 99, 97, 93, 86, 76, 67, 58, 51, 53, 58, 60, 61, 64, 70, 77, 86, 96, 106, 110, 113, 118, 123, 128, 131, 134, 135, 135, 136, 144, 153, 160, 166, 173, 181, 192, 203, 215, 223, 228, 231, 234, 235, 235, 235, 232, 227, 218, 204, 181, 156, 144, 133, 118, 103, 89, 76, 66, 58, 64, 73, 76, 77, 81, 88, 96, 103, 110, 116, 113, 106, 102, 101, 96, 88, 76, 67, 58, 49, 49, 53, 55, 56, 58, 65, 75, 83, 94, 106, 112, 116, 122, 128, 133, 136, 138, 141, 140, 141, 147, 155, 162, 167, 172, 183, 194, 204, 215, 225, 231, 235, 237, 239, 240, 239, 236, 230, 220, 203, 176, 154, 144, 131, 116, 103, 89, 78, 69, 65, 72, 79, 81, 84, 88, 95, 103, 110, 119, 124, 119, 113, 111, 109, 104, 96, 85, 75, 64, 57, 58, 60, 61, 62, 66, 72, 80, 89, 102, 113, 119, 124, 129, 135, 140, 142, 144, 145, 144, 144, 149, 154, 158, 162, 168, 176, 184, 193, 203, 211, 216, 219, 221, 222, 222, 218, 212, 207, 201, 185, 162, 147, 136, 123, 108, 96, 86, 77, 66, 63, 70, 74, 76, 80, 86, 94, 99, 105, 115, 119, 116, 113, 111, 108, 102, 94, 87, 78, 67, 61, 60, 60, 60, 60, 65, 73, 79, 88, 100, 111, 118, 124, 131, 138, 142, 144, 148, 149, 149, 151, 157, 162, 164, 167, 174, 183, 190, 198, 208, 215, 219, 221, 224, 227, 227, 225, 222, 214, 197, 172, 151, 142, 127, 110, 95, 79, 65, 52, 45, 54, 61, 63, 68, 74, 83, 93, 103, 117, 127, 126, 122, 120, 116, 112, 104, 95, 87, 75, 62, 57, 57, 58, 60, 61, 67, 74, 82, 95, 110, 121, 128, 135, 141, 147, 150, 154, 157, 157, 155, 156, 158, 161, 164, 168, 176, 183, 188, 196, 204, 212, 218, 221, 224, 227, 225, 223, 219, 206, 183, 161, 148, 134, 117, 99, 83, 68, 53, 42, 45, 52, 55, 59, 65, 75, 86, 96, 110, 125, 128, 128, 127, 125, 121, 113, 104, 97, 86, 72, 63, 58, 56, 56, 57, 62, 69, 74, 85, 100, 114, 125, 133, 141, 149, 152, 156, 162, 164, 164, 163, 162, 162, 163, 166, 173, 179, 183, 188, 194, 201, 207, 212, 219, 223, 223, 221, 218, 209, 191, 172, 159, 144, 126, 107, 89, 74, 58, 44, 42, 45, 46, 48, 53, 64, 75, 85, 99, 115, 123, 127, 128, 129, 128, 123, 115, 108, 98, 85, 75, 69, 64, 60, 58, 60, 65, 69, 77, 90, 105, 116, 127, 137, 147, 153, 158, 165, 170, 171, 171, 171, 170, 169, 168, 173, 178, 180, 183, 187, 192, 197, 201, 207, 213, 216, 216, 214, 207, 193, 177, 167, 154, 137, 119, 99, 82, 65, 49, 43, 42, 40, 40, 42, 50, 60, 70, 84, 101, 112, 119, 124, 128, 131, 128, 125, 121, 112, 100, 89, 82, 76, 70, 65, 63, 65, 66, 72, 83, 96, 108, 118, 129, 141, 150, 157, 167, 174, 179, 180, 181, 181, 180, 179, 180, 184, 185, 185, 187, 189, 192, 195, 199, 204, 208, 209, 208, 204, 193, 180, 170, 160, 146, 129, 112, 96, 80, 63, 53, 50, 46, 42, 41, 45, 52, 59, 70, 85, 98, 106, 113, 120, 126, 128, 126, 125, 121, 112, 102, 95, 89, 83, 76, 72, 71, 69, 70, 77, 87, 97, 107, 117, 128, 139, 148, 158, 168, 176, 180, 183, 185, 186, 184, 185, 188, 189, 189, 188, 188, 188, 188, 189, 194, 197, 198, 197, 194, 186, 175, 166, 160, 150, 137, 122, 106, 92, 76, 65, 60, 56, 50, 46, 46, 50, 56, 63, 75, 87, 96, 102, 108, 115, 120, 121, 123, 123, 118, 109, 102, 97, 92, 86, 80, 76, 72, 71, 74, 82, 92, 102, 112, 124, 134, 144, 156, 169, 180, 188, 193, 197, 200, 200, 202, 205, 208, 209, 208, 206, 205, 203, 202, 205, 208, 210, 207, 202, 193, 179, 168, 162, 152, 139, 124, 106, 90, 73, 59, 55, 51, 45, 40, 36, 38, 43, 50, 62, 75, 85, 91, 96, 102, 109, 113, 115, 117, 113, 105, 98, 92, 89, 85, 82, 79, 76, 73, 75, 81, 91, 101, 110, 120, 129, 138, 148, 160, 173, 183, 189, 193, 196, 198, 200, 204, 208, 210, 208, 206, 205, 203, 202, 203, 206, 207, 204, 199, 190, 177, 165, 159, 151, 140, 126, 109, 94, 78, 65, 59, 56, 51, 46, 41, 41, 45, 50, 61, 73, 83, 89, 94, 99, 105, 110, 113, 116, 115, 110, 103, 97, 93, 91, 88, 86, 83, 80, 79, 83, 90, 99, 108, 117, 126, 133, 142, 154, 166, 176, 185, 191, 194, 197, 199, 203, 207, 210, 210, 208, 205, 202, 200, 200, 201, 202, 200, 195, 186, 173, 162, 155, 148, 138, 127, 111, 95, 79, 65, 59, 56, 52, 47, 42, 40, 41, 45, 55, 68, 78, 84, 89, 93, 98, 103, 108, 113, 114, 109, 103, 98, 94, 92, 91, 90, 87, 83, 81, 83, 89, 98, 107, 116, 125, 132, 140, 151, 163, 176, 186, 193, 198, 201, 204, 208, 213, 217, 218, 217, 213, 209, 206, 205, 206, 207, 205, 199, 188, 173, 161, 154, 147, 138, 128, 113, 97, 81, 67, 62, 60, 57, 53, 49, 46, 45, 48, 56, 69, 79, 85, 89, 92, 95, 100, 105, 112, 114, 110, 105, 99, 94, 93, 92, 92, 90, 87, 83, 84, 88, 96, 105, 114, 122, 128, 134, 144, 155, 167, 179, 187, 192, 195, 197, 201, 207, 212, 215, 215, 212, 207, 203, 202, 203, 204, 203, 200, 191, 177, 163, 155, 149, 141, 132, 120, 105, 89, 74, 66, 63, 61, 58, 53, 49, 47, 48, 54, 65, 76, 83, 88, 91, 94, 98, 103, 109, 114, 114, 109, 103, 98, 95, 94, 94, 93, 91, 87, 84, 86, 92, 100, 109, 118, 125, 130, 138, 148, 160, 173, 183, 191, 195, 198, 201, 206, 212, 217, 218, 217, 213, 209, 205, 204, 205, 205, 202, 195, 184, 169, 157, 149, 143, 135, 125, 111, 95, 79, 67, 61, 60, 58, 54, 50, 46, 45, 47, 55, 67, 77, 84, 87, 89, 93, 98, 104, 110, 114, 113, 108, 102, 98, 97, 96, 97, 97, 93, 89, 88, 91, 97, 105, 114, 122, 128, 133, 140, 151, 163, 175, 184, 190, 194, 197, 201, 206, 212, 216, 218, 216, 212, 208, 205, 204, 205, 205, 202, 193, 179, 163, 153, 147, 140, 132, 121, 107, 91, 75, 66, 63, 62, 60, 57, 52, 49, 49, 53, 62, 74, 82, 87, 89, 91, 93, 98, 104, 111, 113, 110, 104, 99, 96, 96, 96, 97, 97, 94, 90, 90, 93, 100, 108, 117, 125, 129, 134, 142, 152, 165, 176, 184, 190, 193, 196, 200, 205, 211, 215, 215, 212, 208, 204, 202, 202, 203, 202, 197, 186, 171, 158, 149, 142, 136, 128, 117, 102, 87, 73, 66, 65, 65, 63, 59, 55, 52, 52, 57, 67, 78, 85, 88, 90, 91, 94, 99, 106, 112, 114, 110, 104, 99, 97, 97, 97, 98, 98, 94, 91, 91, 95, 102, 110, 118, 126, 130, 135, 142, 153, 165, 176, 184, 189, 193, 195, 199, 205, 210, 214, 213, 211, 207, 202, 200, 200, 201, 199, 194, 185, 170, 157, 149, 143, 136, 128, 118, 104, 90, 76, 68, 67, 66, 64, 60, 55, 52, 53, 57, 66, 77, 84, 87, 89, 91, 94, 99, 105, 111, 114, 111, 106, 102, 99, 98, 99, 101, 101, 98, 95, 94, 97, 103, 111, 119, 127, 131, 135, 142, 152, 164, 174, 183, 189, 192, 194, 197, 202, 208, 211, 212, 210, 206, 201, 199, 197, 197, 196, 192, 183, 171, 158, 149, 143, 137, 130, 121, 108, 94, 81, 72, 69, 68, 66, 63, 58, 55, 53, 56, 63, 73, 80, 84, 86, 87, 89, 93, 98, 105, 109, 109, 105, 100, 97, 96, 98, 100, 101, 100, 97, 96, 98, 103, 111, 120, 128, 132, 137, 143, 152, 162, 173, 182, 189, 192, 194, 196, 200, 205, 209, 210, 209, 205, 201, 196, 194, 194, 193, 190, 184, 174, 161, 150, 144, 138, 132, 125, 114, 102, 89, 77, 72, 70, 68, 65, 61, 57, 55, 55, 59, 68, 76, 81, 84, 86, 88, 92, 96, 102, 107, 109, 107, 102, 99, 97, 98, 99, 101, 102, 100, 97, 98, 102, 109, 116, 125, 131, 136, 141, 148, 157, 168, 177, 185, 190, 193, 195, 197, 202, 206, 208, 208, 205, 201, 196, 193, 192, 191, 189, 184, 177, 167, 156, 147, 142, 136, 129, 121, 109, 98, 86, 76, 72, 70, 67, 64, 60, 58, 57, 57, 62, 70, 77, 82, 84, 87, 89, 92, 97, 102, 107, 107, 105, 102, 100, 99, 99, 101, 103, 103, 102, 102, 105, 109, 115, 123, 129, 136, 142, 147, 155, 164, 172, 180, 187, 192, 194, 196, 197, 200, 203, 204, 203, 201, 197, 193, 190, 188, 186, 184, 180, 175, 166, 156, 148, 142, 136, 129, 121, 112, 101, 89, 79, 74, 71, 68, 65, 62, 60, 58, 59, 62, 69, 76, 80, 84, 86, 88, 91, 95, 99, 104, 106, 104, 102, 100, 99, 99, 101, 103, 105, 105, 106, 108, 112, 117, 124, 130, 138, 144, 149, 156, 163, 170, 177, 183, 188, 191, 192, 193, 195, 197, 198, 197, 196, 194, 191, 188, 186, 185, 183, 180, 175, 168, 158, 150, 143, 136, 129, 122, 113, 103, 92, 81, 74, 70, 66, 64, 61, 58, 57, 56, 59, 65, 72, 78, 82, 86, 88, 91, 94, 99, 104, 108, 108, 107, 106, 104, 104, 105, 108, 111, 112, 112, 114, 116, 120, 127, 133, 140, 146, 151, 155, 161, 167, 174, 180, 184, 187, 188, 188, 189, 190, 191, 191, 190, 188, 185, 181, 179, 178, 176, 174, 171, 165, 157, 149, 142, 136, 130, 124, 117, 108, 98, 89, 81, 77, 75, 72, 70, 68, 66, 65, 66, 71, 77, 83, 86, 89, 90, 91, 93, 97, 102, 105, 105, 104, 103, 101, 100, 102, 105, 108, 110, 111, 112, 115, 118, 124, 131, 138, 144, 149, 153, 158, 164, 169, 175, 180, 183, 184, 185, 185, 186, 187, 187, 187, 185, 183, 180, 178, 178, 177, 175, 172, 167, 161, 153, 146, 141, 135, 128, 121, 113, 105, 96, 88, 83, 80, 77, 74, 71, 70, 69, 69, 72, 76, 81, 83, 85, 86, 87, 90, 92, 96, 99, 100, 99, 98, 98, 98, 101, 104, 107, 110, 112, 113, 116, 121, 126, 132, 138, 144, 149, 153, 158, 163, 168, 173, 177, 180, 181, 182, 182, 183, 184, 183, 182, 181, 179, 177, 176, 174, 173, 172, 169, 165, 159, 153, 147, 142, 136, 130, 125, 118, 111, 104, 97, 92, 87, 84, 80, 77, 76, 75, 75, 77, 79, 81, 83, 84, 85, 88, 90, 93, 95, 97, 99, 99, 99, 100, 103, 105, 108, 110, 113, 115, 118, 121, 125, 130, 134, 139, 144, 148, 152, 156, 161, 165, 169, 172, 174, 176, 177, 178, 179, 180, 180, 179, 178, 177, 176, 175, 174, 173, 170, 167, 163, 158, 153, 148, 143, 137, 130, 125, 117, 110, 104, 99, 94, 89, 85, 80, 77, 76, 75, 76, 77, 78, 79, 80, 81, 83, 86, 89, 92, 95, 96, 98, 98, 100, 103, 106, 109, 111, 113, 116, 118, 121, 124, 128, 132, 136, 140, 143, 147, 150, 154, 159, 163, 166, 168, 170, 171, 172, 173, 175, 177, 177, 176, 174, 174, 173, 172, 172, 171, 169, 165, 161, 156, 151, 147, 143, 138, 132, 126, 119, 113, 107, 102, 98, 94, 90, 86, 82, 80, 79, 80, 80, 82, 82, 82, 82, 84, 86, 89, 92, 95, 97, 98, 98, 100, 102, 106, 109, 112, 115, 117, 119, 121, 125, 128, 132, 136, 140, 143, 146, 149, 153, 157, 161, 164, 166, 167, 169, 170, 171, 173, 175, 175, 175, 175, 174, 173, 173, 172, 171, 169, 165, 161, 156, 151, 146, 141, 137, 131, 125, 118, 111, 105, 100, 96, 92, 89, 86, 82, 79, 78, 79, 80, 81, 82, 83, 84, 85, 87, 90, 93, 96, 98, 100, 102, 104, 106, 109, 112, 115, 118, 120, 122, 124, 127, 130, 133, 137, 140, 143, 145, 148, 151, 154, 158, 160, 162, 164, 165, 167, 169, 170, 172, 173, 173, 172, 172, 172, 171, 170, 168, 166, 162, 158, 154, 149, 145, 140, 136, 132, 127, 121, 114, 109, 104, 100, 97, 94, 91, 88, 85, 83, 83, 83, 84, 85, 86, 86, 87, 88, 90, 93, 95, 98, 100, 102, 103, 105, 108, 111, 114, 117, 120, 122, 124, 126, 128, 132, 135, 138, 141, 144, 146, 149, 151, 154, 157, 160, 162, 163, 164, 166, 167, 168, 169, 170, 170, 169, 168, 167, 166, 165, 163, 161, 157, 153, 148, 144, 139, 136, 132, 128, 122, 116, 111, 106, 101, 98, 95, 92, 90, 87, 85, 84, 84, 85, 86, 87, 88, 89, 90, 92, 94, 98, 101, 104, 106, 107, 109, 111, 114, 117, 121, 123, 125, 127, 128, 130, 133, 136, 139, 142, 144, 146, 148, 150, 152, 155, 157, 158, 160, 161, 162, 162, 163, 164, 164, 163, 163, 162, 161, 160, 159, 158, 156, 154, 151, 148, 145, 142, 138, 135, 131, 128, 123, 118, 113, 109, 104, 101, 98, 94, 91, 88, 87, 86, 85, 85, 86, 87, 87, 89, 91, 94, 97, 100, 103, 106, 109, 111, 114, 117, 120, 123, 126, 128, 129, 131, 133, 135, 137, 139, 141, 142, 144, 146, 147, 149, 150, 152, 153, 155, 156, 157, 157, 158, 158, 158, 158, 157, 157, 156, 155, 154, 152, 150, 148, 145, 142, 140, 138, 135, 132, 129, 127, 124, 121, 118, 115, 112, 109, 106, 104, 101, 99, 97, 96, 95, 94, 94, 94, 94, 95, 96, 97, 99, 101, 103, 105, 107, 110, 112, 114, 117, 120, 122, 124, 126, 128, 130, 132, 134, 136, 139, 140, 142, 144, 146, 147, 148, 150, 151, 152, 153, 154, 154, 154, 154, 154, 154, 154, 153, 152, 151, 150, 149, 148, 146, 144, 143, 141, 139, 137, 135, 133, 131, 128, 127, 124, 122, 119, 117, 114, 112, 110, 108, 106, 104, 103, 101, 100, 100, 99, 99, 99, 99, 100, 101, 101, 102, 104, 106, 108, 109, 111, 113, 115, 117, 119, 122, 124, 127, 128, 130, 132, 134, 136, 139, 141, 142, 144, 145, 146, 148, 149, 150, 150, 151, 150, 150, 150, 150, 150, 149, 148, 148, 147, 145, 144, 143, 142, 141, 139, 137, 136, 134, 133, 131, 130, 128, 127, 125, 123, 121, 120, 119, 117, 116, 115, 113, 112, 111, 111, 110, 110, 110, 110, 110, 110, 110, 111, 112, 113, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 128, 128, 129, 131, 133, 134, 135, 136, 137, 139, 140, 140, 141, 142, 142, 143, 143, 143, 143, 143, 143, 142, 141, 141, 140, 139, 139, 138, 137, 136, 135, 135, 134, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 118, 117, 117, 117, 117, 116, 116, 116, 116, 117, 117, 117, 118, 118, 119, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 128, 129, 130, 131, 133, 134, 134, 135, 135, 136, 136, 137, 137, 137, 137, 136, 136, 136, 135, 135, 135, 135, 134, 133, 133, 132, 132, 131, 131, 130, 130, 129, 129, 128, 128, 128, 127, 127, 126, 125, 125, 125, 124, 124, 123, 123, 122, 122, 122, 122, 122, 121, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124, 124, 125, 126, 126, 126, 127, 128, 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 133, 132, 132, 132, 132, 132, 132, 131, 131, 131, 131, 130, 130, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 126, 126, 126, 125, 125, 125, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 126, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 129, 129, 129, 128, 128, 128, 128, 128, 127, 127, 126, 126, 125, 125, 124, 124, 124, 124, 124, 124, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128 }; int main() { DDRB |= _BV(PB3); // OC2A pin TCCR2A = _BV(COM2A1) | _BV(WGM22) | _BV(WGM20); // PWM, phase correct, output on OC2A TCCR2B = _BV(CS20); // no pre-scale, about 29khz for phase-correct PWM OCR2A = 128; TCCR0A = _BV(WGM01); TCCR0B = _BV(CS01); // divide by 8 = 1.8432 MHz OCR0A = 229; // divide by 230 = about 8014Hz TIMSK0 = _BV(OCIE0A); sei(); // enable interrupts in general while(1) { } return 0; } int idx = 0; ISR(TIMER0_COMPA_vect) { OCR2A = pgm_read_byte(&wav_data[idx]); idx++; if (idx == wavLength) idx = 0; }