Пример #1
0
int wait_int(int flag)
{
    rt_uint32_t ev;
    

    if(flag)
    {
        /*wait for gdo0 to h */
#if 1
        if( rt_event_recv( &cc1101_event, GDO0_H, RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, 100, &ev ) != RT_EOK ) 
        {
            rt_kprintf("wait for h failed\r\n");
		  cc1101_hw_init();

            return RT_FALSE;
        }
#else
        while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)==RESET);
#endif
    }
    else
    {
        /*wait for gdo0 to l */
#if 1
        if( rt_event_recv( &cc1101_event, GDO0_L, RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, 100, &ev ) != RT_EOK ) 
        {
            rt_kprintf("wait for l failed\r\n");
		  cc1101_hw_init();

            return RT_FALSE;
        }
#else
        while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)==SET);
#endif
    }
   
    return RT_TRUE;
}
Пример #2
0
int cc1101_init()
{
    GPIO_InitTypeDef GPIO_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;
    EXTI_InitTypeDef EXTI_InitStructure;

    rt_bool_t status = RT_FALSE;

    rt_event_init(&cc1101_event, "cc1101_event", RT_IPC_FLAG_FIFO );

    spi_init();

    cc1101_hw_init();


    /* cc1101 int init
     * */
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
    GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
#if HW
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource4);
    /* Configure the SPI interrupt priority */
    NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    EXTI_InitStructure.EXTI_Line = EXTI_Line4;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);

    /* Clear DM9000A EXTI line pending bit */
    EXTI_ClearITPendingBit(EXTI_Line4);
#endif
    return RT_TRUE;
}
Пример #3
0
void app()
{
    APP app;
    CC1101 cc1101;
    IPC ipc;

    app_init(&app);

    cc1101_hw_init(&cc1101);

    for (;;)
    {
        ipc_read(&ipc);
        switch (HAL_GROUP(ipc.cmd))
        {
        default:
            error(ERROR_NOT_SUPPORTED);
            break;
        }
        ipc_write(&ipc);
    }
}