Hi,
I am writing actually a "keyboard input" driver based on that idea.
I use the DIO1 header : port B. Can fit a 4x4 keypad.
I setup 4 interrupts and use the debounce feature of the ep93xx.
I my isr I disable interrupts and schedule a tasklet to check row/col
status then I setup a timer HZ/10 (TS-7200)
and then re-enable interrupts.
It works. Actually I only tested it on a 3x4 keypad, I am waiting to
have a 4x4 keypad for more tests.
Regards,
Matthieu
bdon003 wrote:
>
> I am using the ts-7300 for my senior design project, and I am
> preparing to write a Linux driver for it. Everything on the board is
> pretty much how I got it, same kernel and everything. I need to hook
> up a 3x4 Matrix Keypad to the board and have it send an interrupt when
> a key has been pressed. I am going to connect the three column data
> lines from the keypad to interrupt-enabled I/O pins on one of the
> headers, and then the row data lines will be connected to the same
> header but without interrupts enabled. Will I need to worry about
> debounce control inside the handler? What I obviously don't want is
> more than one interrupt to be sent for only one key press. I am still
> doing some more reading on drivers but my plan is:
> 1. Disable interrupts associated with the keypad
> 2. Read from the header what key was pressed and store it in the next
> cell of an array
> 3. Signal that a tasklet needs to be run to do the overall
> processing/checking of the entered code so far
> 4. Increment the counter keeping track of the next available cell in
> the array
> 5. Re-enable the disabled interrupts
>
> Will this solve my problem? It seems that if the time it takes for
> the key to settle is longer than the time it takes to do those five
> steps, then I would need to do some adjusting. What is a better way
> to do this? Thanks for any help
>
>
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|