source: svn/newcon3bcm2_21bu/dst/dhl/src/test/TimerTest.c @ 76

Last change on this file since 76 was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 4.7 KB
Line 
1/*
2        TimerTest.c
3*/
4
5
6#include "DHL_OSAL.h"
7#include "DHL_Timer.h"
8
9//#include <string.h>
10
11
12#define TIMER_TEST_PRIO   (TASK_PRI_DMW_TIMER -1)
13#define TIMER_TEST_STKSZ  8192
14
15
16void TestHandler1(UINT32 nIDTimer, UINT32 param)
17{
18        DHL_OS_Printf("**** timer call, id 0x%x(%d), arg %u\n", nIDTimer, nIDTimer, param);
19}
20
21/*
22        Shell> Å×½ºÆ® ¼ø¼­.
23        DHL_SYS_ShowTimer
24                // ¾Æ¹« Á¤º¸ ¾øÀ½.
25               
26        DHL_SYS_StartTimer 1, 2000, TestHandler1, 33, 1
27                // Çѹø Ãâ·Â Çϰí Á¾·á.
28
29        DHL_SYS_StartTimer 1, 2000, TestHandler1, 33, 0
30                // °è¼Ó Ãâ·Â.
31
32        DHL_SYS_ShowTimer
33                // 1¹ø timer Ç¥½Ã.
34
35        DHL_SYS_StartTimer 2, 5000, TestHandler1, 77, 0
36       
37        DHL_SYS_ShowTimer
38                // 1, 2¹ø timer Ç¥½Ã.
39
40                // 1, 2¹ø ¸ðµÎ ¸Þ½ÃÁö Ç¥½Ã È®ÀÎ..
41
42        DHL_SYS_KillTimer 1
43                // 1¹ø ¸Þ½ÃÁö ¾È³ª¿È.
44
45        DHL_SYS_ShowTimer
46                // 2¹ø timer Ç¥½Ã.
47       
48        DHL_SYS_KillTimer 8
49                // 8¹ø ŸÀ̸Ӵ ¾øÀ½.. ¿¡·¯ °ªÀÌ ¸®ÅϵǾî¾ß ÇÔ. ¿¡·¯ ¸Þ½ÃÁö´Â ¾È³ª¿Ã ¼ö ÀÖÀ½.
50
51        ---- Timer entry overflow ----
52
53        DHL_SYS_ShowTimer
54                // ÃÖ´ë timer entry °¹¼ö È®ÀÎ.
55
56        DHL_SYS_StartTimer 11 10000 TestHandler1
57        DHL_SYS_StartTimer 12 10000 TestHandler1
58        DHL_SYS_StartTimer 13 10000 TestHandler1
59        DHL_SYS_StartTimer 14 10000 TestHandler1
60        DHL_SYS_StartTimer 15 10000 TestHandler1
61        DHL_SYS_StartTimer 16 10000 TestHandler1
62        DHL_SYS_StartTimer 17 10000 TestHandler1 
63                <- ¿¡·¯¸Þ½ÃÁö Ç¥½Ã..
64
65        DHL_SYS_StartTimer 15 2000 TestHandler1
66        DHL_SYS_StartTimer 15 2000 TestHandler1
67                °°Àº ŸÀ̸Ӵ ¿©·¯¹ø start ÇØµµ update °¡ µÇ°í ¿¡·¯°¡ ¾Æ´Ô.
68                À§ 15¹ø ŸÀ̸Ӹ¦ 2ÃÊ ³»¿¡ °è¼Ó update Çϸé timeout ¸Þ½ÃÁö´Â º¸ÀÌÁö ¾Ê¾Æ¾ß ÇÔ.
69               
70
71*/
72
73/*
74        ------------ version 2 timer ---------------
75*/
76
77
78
79DHL_TMHANDLE g_test_timer;
80
81void TestHandler2(UINT32 nIDTimer, UINT32 *params)
82{
83        DHL_OS_Printf("^^^^ timer call, id 0x%x(%d), arg %d %d %d %d\n", 
84                nIDTimer, nIDTimer, params[0], params[1], params[2], params[3]);
85}
86
87
88DHL_RESULT TimerTest_Init(void)
89{
90        DHL_TIMER_INIT_PARAM param;
91        DHL_RESULT dhr = DHL_OK;
92       
93        //dhl_timer_module_init();
94
95        if (g_test_timer) {
96                goto label_end;  // dhl timer already initialized.
97        }
98        memset(&param, 0, sizeof(DHL_TIMER_INIT_PARAM));
99
100        param.max_timer_entry = 4;
101        param.name = "TMRTEST";
102        param.task_priority = TIMER_TEST_PRIO;
103        param.stack_size = TIMER_TEST_STKSZ;
104        param.use_mutex_lock = 0; // we should support ISR!!
105        param.num_user_param = 4;
106        //param.msg_que_size = xxx; // ±âÁ¸ µ¿ÀÛ ¸ðµå ȣȯ¼º üũ¸¦ À§ÇØ ÀϺη¯ ºüÆ®¸².
107       
108        dhr = DHL_TIMER_Initialize(&param, &g_test_timer);
109
110label_end:
111        DHL_OS_Printf("timer handle %x\n", g_test_timer);
112        DHL_OS_Printf("use 'set g_Trace_TimerHandle 0x%x' to trace timer..\n", g_test_timer);
113       
114        return dhr;     
115}
116
117DHL_RESULT TimerTest_Start(UINT32 nIdTimer, UINT32 nPeriodMs, int mode,
118                                                UINT32 param0, UINT32 param1, UINT32 param2, UINT32 param3)
119{
120        UINT32 params[4];
121
122        params[0] = param0;
123        params[1] = param1;
124        params[2] = param2;
125        params[3] = param3;
126       
127        return DHL_TIMER_StartEx(g_test_timer, nIdTimer, nPeriodMs, 
128                                                TestHandler2, 4, params, 
129                                                mode == 1 ? eTIMER_FLAG_OneShot :
130                                                mode == 2 ? eTIMER_FLAG_NowAndContinue : eTIMER_FLAG_Continue);
131}
132
133DHL_RESULT TimerTest_Stop(UINT32 nIdTimer)
134{
135        return DHL_TIMER_Stop(g_test_timer, nIdTimer);
136}
137
138void TimerTest_Show(void)
139{
140        DHL_TIMER_Show(g_test_timer);
141}
142
143/*
144        Shell> Å×½ºÆ® ¼ø¼­.
145
146        TimerTest_Init
147       
148        TimerTest_Show
149                // ¾Æ¹« Á¤º¸ ¾øÀ½.
150               
151        TimerTest_Start 1, 1000, 1, 11, 22, 33, 44
152                // Çѹø Ãâ·Â Çϰí Á¾·á.
153
154        TimerTest_Start 1, 1000, 0, 11, 22, 33, 44
155                // 1ÃÊ ÈĺÎÅÍ °è¼Ó Ãâ·Â.
156
157        TimerTest_Start 1, 1000, 2, 11, 22, 33, 44
158                // Çѹø Ãâ·Â Çϰí 1ÃÊ ¸¶´Ù °è¼Ó Ãâ·Â.
159
160
161        TimerTest_Show
162                // 1¹ø timer Ç¥½Ã.
163
164        TimerTest_Start 2, 5000, 0, 55, 66, 77, 88
165       
166        TimerTest_Show
167                // 1, 2¹ø timer Ç¥½Ã.
168
169                // 1, 2¹ø ¸ðµÎ ¸Þ½ÃÁö Ç¥½Ã È®ÀÎ..
170
171        TimerTest_Stop 1
172                // 1¹ø ¸Þ½ÃÁö ¾È³ª¿È.
173
174        TimerTest_Show
175                // 2¹ø timer Ç¥½Ã.
176       
177        TimerTest_Stop 8
178                // 8¹ø ŸÀ̸Ӵ ¾øÀ½.. ¿¡·¯ °ªÀÌ ¸®ÅϵǾî¾ß ÇÔ. ¿¡·¯ ¸Þ½ÃÁö´Â ¾È³ª¿Ã ¼ö ÀÖÀ½.
179
180
181        TimerTest_Start 99, 0, 1, 0x11 0x22 0x33 0x44
182                // dpc test
183               
184
185
186        ---- ¿¡·¯ üũ
187       
188        TimerTest_Start 0xfff9, 2000, 0, 0
189                // range error
190
191        TimerTest_Start 99, 0, 0, 0
192                // too short period
193
194        ---- Timer entry overflow ----
195
196        TimerTest_Show
197                // ÃÖ´ë timer entry °¹¼ö È®ÀÎ.
198
199        TimerTest_Start 11 10000 TestHandler2
200        TimerTest_Start 12 10000 TestHandler2
201        TimerTest_Start 13 10000 TestHandler2
202        TimerTest_Start 14 10000 TestHandler2
203        TimerTest_Start 15 10000 TestHandler2
204                <- ¿¡·¯¸Þ½ÃÁö Ç¥½Ã..
205
206        TimerTest_Start 15 2000 TestHandler1
207        TimerTest_Start 15 2000 TestHandler1
208                °°Àº ŸÀ̸Ӵ ¿©·¯¹ø start ÇØµµ update °¡ µÇ°í ¿¡·¯°¡ ¾Æ´Ô.
209                À§ 15¹ø ŸÀ̸Ӹ¦ 2ÃÊ ³»¿¡ °è¼Ó update Çϸé timeout ¸Þ½ÃÁö´Â º¸ÀÌÁö ¾Ê¾Æ¾ß ÇÔ.
210               
211*/
212
213
214void Timer_Test(void)
215{
216        DHL_SYS_ShowTimer();
217}
218
Note: See TracBrowser for help on using the repository browser.