程序是讓燈帶只亮紅色并呼吸效果,當cnr增加到0x80時,會出現全部燈熄滅的情況,測出來波形是32us長低電平+12us高電平導致的初始化(個人猜測),如何避免該數據造成的初始化,希望有人解答一下
int main(void)
{
u8 key;
u8 i=0,t=0,u = 0;
u8 cnr = 0x00;
u8 cnb = 0x00;
u8 cng = 0x00;
u8 rs485buf[35];
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init(168);
uart_init(115200);
LED_Init();
LCD_Init();
KEY_Init();
RS485_Init(250000);
Dat_Rst_Init();
delay_ms(100);
LED0 = 1;
DatRst = 0;
delay_us(88);
DatRst = 1;
delay_us(8);
DatRst = 0;
delay_us(32);
DatRst = 1;
delay_us(8);
for( i = 0; i < 30; i++ )
{
rs485buf[ i] = 0x00;
}
RS485_Send_Data(rs485buf,30);
while(1)
{
DatRst = 0;
delay_us(88);
DatRst = 1;
delay_us(8);
DatRst = 0;
delay_us(32);
DatRst = 1;
delay_us(8);
for( i = 0; i < 30; i = i+3 )
{
rs485buf[i ] = cnr;
rs485buf[i+1] = cnb;
rs485buf[i+2] = cng;
}
RS485_Send_Data(rs485buf,30);
delay_ms(10);
switch(u)
{
case 0:
cnr = cnr + 0x01;
if(cnr == 0xFF)
{
cnr = 0xFF;
u = 1;
}
break;
case 1:
cnr = cnr - 0x01;
if(cnr == 0x00)
{
cnr = 0x00;
u = 0;
}
break;
default:
u = 0;
break;
}
}
}
|