diff --git a/examples/pm/timer_app.c b/examples/pm/timer_app.c index 73faf52d0a1a4933d2b504f3cc9cd1dd60419fe8..5c20d0f6902eacea461be9c8dd1b5a7f2c291db2 100644 --- a/examples/pm/timer_app.c +++ b/examples/pm/timer_app.c @@ -48,7 +48,7 @@ static int timer_app_init(void) return -1; } } -INIT_EXPORT_APP(timer_app_init); +INIT_APP_EXPORT(timer_app_init); #endif /* RT_USING_PM */ diff --git a/examples/test/hwtimer_test.c b/examples/test/hwtimer_test.c index 8f69c4ef87a73befe18fdcad818d1385c7d50321..428373dde056b0faa884e18676bea9d4214d036b 100644 --- a/examples/test/hwtimer_test.c +++ b/examples/test/hwtimer_test.c @@ -8,7 +8,7 @@ static rt_err_t timer_timeout_cb(rt_device_t dev, rt_size_t size) { - rt_kprintf("HT %d\n", rt_tick_get()); + rt_kprintf("enter hardware timer isr\n"); return 0; } @@ -35,7 +35,7 @@ int hwtimer(void) return -1; } - rt_device_set_rx_indicate(dev, timer_timeout_cb); + /* 时间测量 */ /* 计数时钟设置(默认1Mhz或支持的最小计数频率) */ err = rt_device_control(dev, HWTIMER_CTRL_FREQ_SET, &freq); if (err != RT_EOK) @@ -69,12 +69,34 @@ int hwtimer(void) rt_device_read(dev, 0, &val, sizeof(val)); rt_kprintf("Read: Sec = %d, Usec = %d\n", val.sec, val.usec); + /* 定时执行回调函数 -- 单次模式 */ + /* 设置超时回调函数 */ + rt_device_set_rx_indicate(dev, timer_timeout_cb); + + /* 单次模式 */ + mode = HWTIMER_MODE_PERIOD; + err = rt_device_control(dev, HWTIMER_CTRL_MODE_SET, &mode); + + /* 设置定时器超时值并启动定时器 */ + val.sec = t; + val.usec = 0; + rt_kprintf("SetTime: Sec %d, Usec %d\n", val.sec, val.usec); + if (rt_device_write(dev, 0, &val, sizeof(val)) != sizeof(val)) + { + rt_kprintf("SetTime Fail\n"); + goto EXIT; + } + + /* 等待回调函数执行 */ + rt_thread_delay((t + 1)*RT_TICK_PER_SECOND); + EXIT: err = rt_device_close(dev); rt_kprintf("Close %s\n", TIMER); return err; } - -FINSH_FUNCTION_EXPORT(hwtimer, "Test hardware timer"); +#ifdef FINSH_USING_MSH +MSH_CMD_EXPORT(hwtimer, "Test hardware timer"); #endif +#endif /* RT_USING_HWTIMER */ diff --git a/include/rtdef.h b/include/rtdef.h index 5cb3687ce103586d473ebd4f3f5eb27ddcfe0e56..1ffb3d66a17302b6c4749cc4ac2fc3f4abb673ad 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -77,7 +77,7 @@ typedef rt_base_t rt_off_t; /**< Type for offset */ #define RT_TRUE 1 /**< boolean true */ #define RT_FALSE 0 /**< boolean fails */ -/*@}*/ +/**@}*/ /* maximum value of base type */ #define RT_UINT8_MAX 0xff /**< Maxium number of UINT8 */