void play(char m) { if (m == ' ') { tmr_delay(tmrid, 2 * dot_delay); } else { pio_pin_sethigh("PF_0"); pwm_start(pwmid); tmr_delay(tmrid, m == '.' ? dot_delay : 3 *dot_delay); pwm_stop(pwmid); pio_pin_setlow("PF_0"); tmr_delay(tmrid, dot_delay); } }
void beep(void) { // Enable Buzzer PORT_BUZZER_O &= ~(1<<BIT_BUZZER_O); // Wait 100 ms tmr_delay(100); // Disable Buzzer PORT_BUZZER_O |= (1<<BIT_BUZZER_O); }
int main(void) { // Set BUZZER_O as output pin DDR_BUZZER_O |= (1<<BIT_BUZZER_O); // Disable Buzzer PORT_BUZZER_O |= (1<<BIT_BUZZER_O); // Initialise timer tmr_init(); // Repeat indefinitely for(;;) { beep(); // Wait 1 s tmr_delay(1000); } }