初级会员

- 积分
- 104
- 金钱
- 104
- 注册时间
- 2013-6-17
- 在线时间
- 7 小时
|

楼主 |
发表于 2013-7-31 15:25:25
|
显示全部楼层
中断函数之前没有移植到UCOSII的时候没有问题的!!
<br>//外部中断5服务程序
<br>void EXTI9_5_IRQHandler(void)
<br>{
<br>
<br> u8 sta=0;
<br> sta=NRF24L01_Read_Reg(STATUS); //读取状态寄存器的值
<br> NRF24L01_Write_Reg(WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中断标志
<br> EXTI-> R=1<<5;
<br> if(sta&RX_OK)//接收到数据
<br> {
<br> NRF24L01_Read_Buf(RD_RX_PLOAD,tmp_buf,RX_PLOAD_WIDTH);//读取数据
<br> NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除RX FIFO寄存器
<br> }
<br> EXTI-> R=1<<5; //清除LINE5上的中断标志位*/
<br>}
<br>在任务中我是这样子写的 不知道有没有问题:
<br>void led0_task(void *pdata)
<br>{
<br> while(NRF24L01_Check())//检测不到24L01
<br> {
<br> while(1){
<br> delay_ms(100);
<br> LED0=!LED0;}
<br> }
<br>
<br> while(1)
<br> {
<br> if(tmp_buf[0]==1)
<br> {
<br> LED0=0;
<br> delay_ms(80);
<br> LED0=1;
<br> delay_ms(920);
<br> }
<br> };
<br>} |
|