X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Farm.git;a=blobdiff_plain;f=betty%2Fbuttons.c;fp=betty%2Fbuttons.c;h=735befdf46cf3f17b1e7707b19f0bce9adc2d838;hp=094e356d0f093f4668f6037b6bd36086d5261554;hb=a409cb5b36482767f766ec9efc5dbecaa2274660;hpb=202c5cb4442b81aa5d0f7389b6dca62b2c121ac1 diff --git a/betty/buttons.c b/betty/buttons.c index 094e356..735befd 100644 --- a/betty/buttons.c +++ b/betty/buttons.c @@ -10,6 +10,9 @@ #define BUTTON_RESET \ IOSET2=((1<<18)|(1<<19)|(1<<20)|(1<<21)|(1<<22)|(1<<23)|(1<<24)) +#define BUTTON_UNSET \ + IOCLR2=((1<<18)|(1<<19)|(1<<20)|(1<<21)|(1<<22)|(1<<23)|(1<<24)) + #define COUNT_AND_CHECK cnt++; \ if(cnt==BUTTON_MAX) \ break @@ -25,13 +28,11 @@ void button_init(t_button *button) { * - p2.18-p2.24 : the rows */ - BUTTON_RESET; - /* poll / interrupt mode */ - if(button->mode&BUTTON_INT) { - } - else if(button->mode&BUTTON_POLL) { - } + if(button->mode&BUTTON_INT) + BUTTON_UNSET; + else if(button->mode&BUTTON_POLL) + BUTTON_RESET; } void button_set_retries(t_button *button,int retries) { @@ -53,12 +54,12 @@ u8 button_get_event(t_button *button) { u8 offset; u8 cnt; u32 port0,port3; - u8 retries; + u8 tries; cnt=0; - retries=button->retries; + tries=button->retries+1; - while(retries--) { + while(tries--) { /* rest offset counter */ offset=0; /* rows */ @@ -98,8 +99,10 @@ u8 button_get_event(t_button *button) { break; } - BUTTON_RESET; - button->cnt=cnt; + if(button->mode&BUTTON_INT) + BUTTON_UNSET; + else if(button->mode&BUTTON_POLL) + BUTTON_RESET; return cnt; }