diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/main.cpp b/src/main.cpp index 15e7e60..5e0c471 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -37,7 +37,7 @@ uint16_t sample = 0; uint16_t sineArray[SINA_SIZE]; -int wave_type = 0; +int wave_type = -1; // Initialise display SPInit gSpi(D_MOSI_PIN, NC, D_CLK_PIN); @@ -67,21 +67,22 @@ int main(void) timer.attach_us(&tout, SW_PERIOD); oled.clearDisplay(); - oled.printf("%ux%u Group Ay08-04\r\n", oled.width(), oled.height()); for (;;) { if (update) { update = 0; oled.setTextCursor(0, 0); + oled.printf("Wave type: %d \n", wave_type); + oled.printf("Sq:2 Tr:1 Sin:0"); // Write the latest switch osciallor count for (int i = 3; i >= 0; --i) { if (wave_type < 0){ - oled.printf("Select type of wave\n"); - oled.printf("Square:2 Triangle:1 Sine:0"); - if (switch_pressed[i] && !last_pressed[i]) + if (switch_pressed[i] && !last_pressed[i]){ wave_type = i; + oled.setTextCursor(0, 0); + } } else { current_f[i] += (switch_pressed[i] && !last_pressed[i]); if (current_f[i] > 9) @@ -100,10 +101,10 @@ int main(void) if (frequency){ switch(wave_type){ case 1: - pwm.attach_us( &square, 1000000 / (frequency * SINA_SIZE)); + pwm.attach_us( &triangle, 1000000 / (frequency * SINA_SIZE)); break; case 0: - pwm.attach_us( &triangle, 1000000 / (frequency * 100)); + pwm.attach_us( &sine, 1000000 / (frequency * 100)); break; default: pwm.attach_us( &square, 1000000 / (frequency * 2)); |