diff options
| author | bernard.xiong <[email protected]> | 2010-04-07 06:16:30 +0000 |
|---|---|---|
| committer | bernard.xiong <[email protected]> | 2010-04-07 06:16:30 +0000 |
| commit | 5b6434cbe46120f58b703bb0e03e1ab1ff9f1d80 (patch) | |
| tree | 41b5be8065a9b0fa616024daa4696f6e888b10c8 | |
| parent | 9294a611f525bdae415844ce8343ab6588ce4363 (diff) | |
fix compiling error under Linux
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@587 bbd45198-f89e-11dd-88c7-29a3b14d5316
| -rw-r--r-- | bsp/mini2440/key.c | 220 |
1 files changed, 110 insertions, 110 deletions
diff --git a/bsp/mini2440/key.c b/bsp/mini2440/key.c index 9fc655a02e..c0c16836f1 100644 --- a/bsp/mini2440/key.c +++ b/bsp/mini2440/key.c @@ -1,110 +1,110 @@ -#include <rtthread.h>
-#include <S3C24x0.h>
-
-#include <rtgui/event.h>
-#include <rtgui/rtgui_server.h>
-
-/*
-key_enter GPG0
-key_down GPG3
-key_up GPG5
-key_right GPG6
-key_left GPG7
-key_power GPG11
-*/
-#define key_enter_GETVALUE() (GPGDAT & (1 << 0))
-#define key_down_GETVALUE() (GPGDAT & (1 << 3))
-#define key_up_GETVALUE() (GPGDAT & (1 << 5))
-#define key_right_GETVALUE() (GPGDAT & (1 << 6))
-#define key_left_GETVALUE() (GPGDAT & (1 << 7))
-#define key_power_GETVALUE() (GPGDAT & (1 << 11))
-
-static void key_thread_entry(void *parameter)
-{
- rt_time_t next_delay;
- struct rtgui_event_kbd kbd_event;
-
- /* init gpio configuration */
- GPGCON = GPGCON & (~((3<<22)|(3<<6)|(3<<0)|(3<<10)|(3<<12)|(3<<14))) |
- ((2<<22)|(2<<6)|(2<<0)|(2<<10)|(2<<12)|(2<<14));
-
- /* init keyboard event */
- RTGUI_EVENT_KBD_INIT(&kbd_event);
- kbd_event.mod = RTGUI_KMOD_NONE;
- kbd_event.unicode = 0;
-
- while (1)
- {
- next_delay = 20;
- kbd_event.key = RTGUIK_UNKNOWN;
-
- kbd_event.type = RTGUI_KEYDOWN;
- if ( key_enter_GETVALUE() == 0 )
- {
- rt_thread_delay(next_delay);
- if (key_enter_GETVALUE() == 0)
- {
- /* HOME key */
- rt_kprintf("key_home\n");
- kbd_event.key = RTGUIK_HOME;
- }
- else
- {
- rt_kprintf("key_enter\n");
- kbd_event.key = RTGUIK_RETURN;
- }
- }
-
- if ( key_down_GETVALUE() == 0 )
- {
- rt_kprintf("key_down\n");
- kbd_event.key = RTGUIK_DOWN;
- }
-
- if ( key_up_GETVALUE() == 0 )
- {
- rt_kprintf("key_up\n");
- kbd_event.key = RTGUIK_UP;
- }
-
- if ( key_right_GETVALUE() == 0 )
- {
- rt_kprintf("key_right\n");
- kbd_event.key = RTGUIK_RIGHT;
- }
-
- if ( key_left_GETVALUE() == 0 )
- {
- rt_kprintf("key_left\n");
- kbd_event.key = RTGUIK_LEFT;
- }
-
- if (kbd_event.key != RTGUIK_UNKNOWN)
- {
- /* post down event */
- rtgui_server_post_event(&(kbd_event.parent), sizeof(kbd_event));
-
- next_delay = 10;
- /* delay to post up event */
- rt_thread_delay(next_delay);
-
- /* post up event */
- kbd_event.type = RTGUI_KEYUP;
- rtgui_server_post_event(&(kbd_event.parent), sizeof(kbd_event));
- }
-
- /* wait next key press */
- rt_thread_delay(next_delay);
- }
-}
-
-void rt_hw_key_init()
-{
- #if 0
- rt_thread_t key_tid;
- key_tid = rt_thread_create("key",
- key_thread_entry, RT_NULL,
- 512, 30, 5);
- if (key_tid != RT_NULL) rt_thread_startup(key_tid);
- #endif
-}
+#include <rtthread.h> +#include <s3c24x0.h> + +#include <rtgui/event.h> +#include <rtgui/rtgui_server.h> + +/* +key_enter GPG0 +key_down GPG3 +key_up GPG5 +key_right GPG6 +key_left GPG7 +key_power GPG11 +*/ +#define key_enter_GETVALUE() (GPGDAT & (1 << 0)) +#define key_down_GETVALUE() (GPGDAT & (1 << 3)) +#define key_up_GETVALUE() (GPGDAT & (1 << 5)) +#define key_right_GETVALUE() (GPGDAT & (1 << 6)) +#define key_left_GETVALUE() (GPGDAT & (1 << 7)) +#define key_power_GETVALUE() (GPGDAT & (1 << 11)) + +static void key_thread_entry(void *parameter) +{ + rt_time_t next_delay; + struct rtgui_event_kbd kbd_event; + + /* init gpio configuration */ + GPGCON = GPGCON & (~((3<<22)|(3<<6)|(3<<0)|(3<<10)|(3<<12)|(3<<14))) | + ((2<<22)|(2<<6)|(2<<0)|(2<<10)|(2<<12)|(2<<14)); + + /* init keyboard event */ + RTGUI_EVENT_KBD_INIT(&kbd_event); + kbd_event.mod = RTGUI_KMOD_NONE; + kbd_event.unicode = 0; + + while (1) + { + next_delay = 20; + kbd_event.key = RTGUIK_UNKNOWN; + + kbd_event.type = RTGUI_KEYDOWN; + if ( key_enter_GETVALUE() == 0 ) + { + rt_thread_delay(next_delay); + if (key_enter_GETVALUE() == 0) + { + /* HOME key */ + rt_kprintf("key_home\n"); + kbd_event.key = RTGUIK_HOME; + } + else + { + rt_kprintf("key_enter\n"); + kbd_event.key = RTGUIK_RETURN; + } + } + + if ( key_down_GETVALUE() == 0 ) + { + rt_kprintf("key_down\n"); + kbd_event.key = RTGUIK_DOWN; + } + + if ( key_up_GETVALUE() == 0 ) + { + rt_kprintf("key_up\n"); + kbd_event.key = RTGUIK_UP; + } + + if ( key_right_GETVALUE() == 0 ) + { + rt_kprintf("key_right\n"); + kbd_event.key = RTGUIK_RIGHT; + } + + if ( key_left_GETVALUE() == 0 ) + { + rt_kprintf("key_left\n"); + kbd_event.key = RTGUIK_LEFT; + } + + if (kbd_event.key != RTGUIK_UNKNOWN) + { + /* post down event */ + rtgui_server_post_event(&(kbd_event.parent), sizeof(kbd_event)); + + next_delay = 10; + /* delay to post up event */ + rt_thread_delay(next_delay); + + /* post up event */ + kbd_event.type = RTGUI_KEYUP; + rtgui_server_post_event(&(kbd_event.parent), sizeof(kbd_event)); + } + + /* wait next key press */ + rt_thread_delay(next_delay); + } +} + +void rt_hw_key_init() +{ + #if 0 + rt_thread_t key_tid; + key_tid = rt_thread_create("key", + key_thread_entry, RT_NULL, + 512, 30, 5); + if (key_tid != RT_NULL) rt_thread_startup(key_tid); + #endif +} |
