unsigned char check_u_button(int *u) { // check U+ button: sbi(PORTB,PB7); sbi(PORTB,PB2); sbi(PORTB,PB1); cbi(PORTB,PB0); kbd_wait(); if (bit_is_clear(PINB,PINB5)){ (*u)++; return(1); } // check U- button: sbi(PORTB,PB7); sbi(PORTB,PB2); cbi(PORTB,PB1); sbi(PORTB,PB0); kbd_wait(); if (bit_is_clear(PINB,PINB5) && (*u)>0){ (*u)--; if((*u)<0){ (*u)=0; } return(1); } return(0); }
unsigned char check_i_button(int *i) { // check I+ button: sbi(PORTB,PB7); cbi(PORTB,PB2); sbi(PORTB,PB1); sbi(PORTB,PB0); kbd_wait(); if (bit_is_clear(PINB,PINB5)){ (*i)++; return(1); } // check I- button: cbi(PORTB,PB7); sbi(PORTB,PB2); sbi(PORTB,PB1); sbi(PORTB,PB0); kbd_wait(); if (bit_is_clear(PINB,PINB5) && (*i)>0){ (*i)--; if((*i)<0){ (*i)=0; } return(1); } return(0); }
uint8_t check_i_button(int16_t *i) { // check I+ button: PORTC|=(1<<PORTC3); // to vcc PORTC|=(1<<PORTC4); // to vcc PORTB&=~(1<<PORTB2); // to gnd PORTC|=(1<<PORTC5); // to vcc kbd_wait(); if (bit_is_clear(PINB,PINB5)){ (*i)++; return(1); } // check I- button: PORTC|=(1<<PORTC3); // to vcc PORTC|=(1<<PORTC4); // to vcc PORTB|=(1<<PORTB2); // to vcc PORTC&=~(1<<PORTC5); // to gnd kbd_wait(); if (bit_is_clear(PINB,PINB5) && (*i)>0){ (*i)--; if((*i)<0){ (*i)=0; } return(1); } return(0); }
void setleds(void) { kbd_wait(); outb(0xed, 0x60); kbd_wait(); outb(leds, 0x60); return; }
unsigned char check_store_button(void) { // check store button: cbi(PORTB,PB2); kbd_wait(); if (bit_is_clear(PINB,PINB3)){ return(1); } return(0); }
uint8_t check_store_button(void) { // check store button: PORTB&=~(1<<PORTB2); // to gnd kbd_wait(); if (bit_is_clear(PINB,PINB3)){ return(1); } return(0); }
static void kbd_write_output_w(int data) { kbd_wait(); kbd_write_output(data); }
static void kbd_write_command_w(int data) { kbd_wait(); kbd_write_command(data); }