|
20黑幣
單片機(jī)控制一串幻彩LED燈串,這幻彩LED是又驅(qū)動(dòng)IC的,單片機(jī)和驅(qū)動(dòng)IC要通訊。通訊協(xié)議是:send_1(){dat=0;delay_us(4);dat=1;delay_us(12);}這就是發(fā)送數(shù)據(jù)1,send_0(){dat=0;delay_us(4);dat=1;delay_us(6);}這就是發(fā)送數(shù)據(jù)0,send_end(){dat=0;delay_us(4);dat=1;delay_us(20);}這就是發(fā)送數(shù)據(jù)結(jié)束碼,發(fā)了結(jié)束碼之后,驅(qū)動(dòng)IC就把LED點(diǎn)亮。單片機(jī)每點(diǎn)亮一個(gè)LED要發(fā)32+1=33個(gè)碼,前8個(gè)碼是LED驅(qū)動(dòng)IC的地址,再接著8個(gè)是紅色led占空比值,再接著8個(gè)是藍(lán)色色led占空比值,再接著8個(gè)是綠色led占空比值,再加一個(gè)結(jié)束碼,F(xiàn)在問題就來了:我在主程序里發(fā)送碼值驅(qū)動(dòng)LED燈時(shí),完全OK,但是只要一開定時(shí)器中斷,就不行了,因?yàn)槎〞r(shí)器中斷后,使delay_us();延時(shí)的值變了,導(dǎo)致通訊數(shù)據(jù)錯(cuò)誤。 所以看看哪位高人指點(diǎn)一下,萬分感謝
|
|