关于事件获取函数rt_event_recv返回值的问题
本帖最后由 RAMILE 于 2014-8-22 14:31 编辑返回值怎么是负数,本来以为和ucos差不多,检测获取事件超时的返回值时候,程序出现异常,单步查看返回值err,结果是-RT_ETIMEOUT
有人知道为什么要用负数??
//************************ 继电器刷新 ***************************
//函数定义: void thread_entry_Relay(void* parameter)
//入口参数:无
//出口参数:无
//备 注:Editor:
//******************************************************************
void thread_entry_Relay(void* parameter)
{
static uint16_t RelayDataOld;
uint32_t temp;
rt_err_t err;
RELAY_CLR_L(); /*nOEenable*/
RELAY_ST_L();
SPI_I2S_SendData(SPI3, 0);
rt_thread_delay(1) ;
RELAY_ST_H();
while (1)
{
err = rt_event_recv( &event, /* 秒脉冲事件*/
(1 << FLAGBIT_RELAYFLUSH),
RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
500,
&temp);
if ( err== RT_EOK|| err == -RT_ETIMEOUT){
RELAY_CLR_L(); /*nOEenable*/
RELAY_ST_L();
SPI_I2S_SendData(SPI3, G_RELAY );
rt_thread_delay(1) ;
RELAY_ST_H();
}
}
} 惯例吧,一般出错值用负数。 本帖最后由 RAMILE 于 2014-8-22 15:45 编辑
aozima 发表于 2014-8-22 14:43
惯例吧,一般出错值用负数。
我只是有点不习惯在宏定义前面加符号,以前习惯了ucos的用法
=======
还有个问题请教Ozma,我想创建一个 静态的软件定时器rt_timer,发现缺了rt_timer的类型定义
我是自己加上的
typedef struct rt_timer rt_timer_type;
用的工具是MDK4.72 不知是不是有问题
页:
[1]