|
本帖最后由 Am-PCB 于 2013-2-2 11:47 编辑
现附上程序- 问题详述:第一次循环后,NIRQ的值就变为1(对应的NIRQ引脚电平为高)而不会再变为0,不会再进入if,也就是说只接收一次数据。困惑。。。
- while(1)
- {
- if( NIRQ == 0 )
- {
- //NIRQ = 1;
- //disable the receiver chain
- SpiWriteRegister(0x07, 0x01); //write 0x01 to the Operating Function Control 1 register
- //read interrupt status registers
- ItStatus1 = SpiReadRegister(0x03); //read the Interrupt Status1 register
- ItStatus2 = SpiReadRegister(0x04); //read the Interrupt Status2 register
-
- if((ItStatus1 & 0x02) == 0x02)
- { //ItStatus1 = SpiReadRegister(0x03); //read the Interrupt Status1 register
- // ItStatus2 = SpiReadRegister(0x04); //read the Interrupt Status2 register
-
- //Read the length of the received payload
- length = SpiReadRegister(0x4B); //read the Received Packet Length register
- //check whether the received payload is not longer than the allocated buffer in the MCU
- //Get the received payload from the RX FIFO
- for(temp8=0;temp8 < length; temp8++)
- {
- payload[temp8] = SpiReadRegister(0x7F); //read the FIFO Access register
- }
- for(i=0;i<length;i++)
- {
- rd1 = payload[i];
- rd1 = rd1<<1;
- }
-
- //check whether the acknowledgement packet received
- successful_flag = 1;
- timeout=0; //check whether an expected packet received, this should be acknowledged
- //}
- //if( length == 8 )
- //{
- if(successful_flag)
- {
- led1();
- //lcd_printf_string(" ", ROW(0x00)|LEN(0x08)|COL(0x00));
- //lcd_printf_string("ok ", ROW(0x01)|LEN(0x08)|COL(0x00));
- }
- else
- {
- //lcd_printf_string(" ", ROW(0x00)|LEN(0x08)|COL(0x00));
- //lcd_printf_string("fail ", ROW(0x01)|LEN(0x08)|COL(0x00));
- }
- rd = AdpcmDecode(rd1);
- //}
- }
- //reset the RX FIFO
- SpiWriteRegister(0x08, 0x02); //write 0x02 to the Operating Function Control 2 register
- SpiWriteRegister(0x08, 0x00); //write 0x00 to the Operating Function Control 2 register
- //enable the receiver chain again
- SpiWriteRegister(0x07, 0x05); //write 0x05 to the Operating Function Control 1 register
- }
- }
复制代码 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|