while(1) { while(spi0_ISR(0)) { send(0,buffer,len,DMAC,&SPI0); } while(getSn_RX_RSR(0)) { recvfrom(0,buffer,len,DMAC,&DPORT); } } //////////////////////////////////////////////////// while(1) { delay_ms(500); LED_ALT(); } //////////////////////////////////////////////////// while(1) { IIC_Start(); while(IIC_WaitAck()); IIC_WriteByte(02); while(IIC_WaitAck()); temp =IIC_ReadByte(0); IIC_Stop(); } while(1) { delay_ms(50); LED1_ALT(); } /////1ms定时器中断// void Timer0_ISR (void) interrupt 1 { t0++; } 用一个循环实现相同功
时间: 2023-08-12 08:07:16 浏览: 150
能的代码是:
while(1) {
// SPI通信
while(spi0_ISR(0)) {
send(0, buffer, len, DMAC, &SPI0);
}
while(getSn_RX_RSR(0)) {
recvfrom(0, buffer, len, DMAC, &DPORT);
}
// LED闪烁
if(t0 == 500) { // 500ms
t0 = 0;
LED_ALT();
}
// IIC通信
IIC_Start();
while(IIC_WaitAck());
IIC_WriteByte(0x02);
while(IIC_WaitAck());
temp = IIC_ReadByte(0);
IIC_Stop();
// LED1闪烁
LED1_ALT();
delay_ms(50);
}
其中,t0是一个计数器,每当定时器0中断发生时就加1,当t0达到500时表示500ms时间到了,开始闪烁LED。delay_ms(50)是为了控制LED1的闪烁频率。
阅读全文