+void __attribute__ ((interrupt("IRQ"))) set_sample(void) {
+
+ uart0_send_byte('S');
+ pwm_update_match(PWM_CHAN2,PWM_SINGLE_EDGE,sinus[sample_count++],0);
+ if(sample_count==0xff)
+ sample_count=0;
+ interrupt_ack();
+ interrupt_tc_ir_set(INTERRUPT_TC0,INTERRUPT_M0);
+}
+
+void __attribute__ ((interrupt("IRQ"))) input_event(void) {
+
+ u8 noret,tries;
+
+ /* button scan */
+ if(button_get_event(&button)) {
+ switch(button.key[0]) {
+ case BUTTON_POWER:
+ display_logo((u8 *)default_logo);
+ break;
+ case BUTTON_DOWN:
+ if(contrast>0x00)
+ contrast-=1;
+ DISPLAY_SET_CONTRAST(contrast);
+ break;
+ case BUTTON_UP:
+ if(contrast<0x3f)
+ contrast+=1;
+ DISPLAY_SET_CONTRAST(contrast);
+ break;
+ case BUTTON_A:
+ display_fill_screen(DISPLAY_FILL_W);
+ break;
+ case BUTTON_B:
+ display_fill_screen(DISPLAY_FILL_LG);
+ break;
+ case BUTTON_C:
+ display_fill_screen(DISPLAY_FILL_DG);
+ break;
+ case BUTTON_D:
+ display_fill_screen(DISPLAY_FILL_B);
+ break;
+ case BUTTON_1:
+ display_rectangle_page(4,2,60,5,
+ DISPLAY_FILL_B,0xff);
+ break;
+ case BUTTON_2:
+ display_rectangle_page(40,5,50,5,
+ DISPLAY_FILL_LG,0x7f);
+ break;
+ case BUTTON_3:
+ break;
+ case BUTTON_4:
+ display_font_page(42,18,
+ (u8 *)default_font+(0x34<<3),
+ DISPLAY_FILL_B);
+ break;
+ case BUTTON_5:
+ display_font_page(50,18,
+ (u8 *)default_font+(0x35<<3),
+ DISPLAY_FILL_DG);
+ break;
+ case BUTTON_6:
+ display_font_page(58,18,
+ (u8 *)default_font+(0x36<<3),
+ DISPLAY_FILL_W);
+ break;
+ case BUTTON_7:
+ break;
+ case BUTTON_8:
+ break;
+ case BUTTON_BETTY:
+ display_string_page(50,13,(u8 *)d1_txt,
+ DISPLAY_FILL_B,0,8);
+ break;
+ case BUTTON_EXIT:
+ display_string_page(10,8,(u8 *)d2_txt,
+ DISPLAY_FILL_B,0,8);
+ break;
+ default:
+ display_clear_screen();
+ break;
+ }