374T做設(shè)備,374處理USB數(shù)據(jù)為什么不能在中斷中進(jìn)行呢?

我現(xiàn)在用374T做設(shè)備,由于程序大,而且程序中開了多個(gè)中斷,有定時(shí)中斷,我發(fā)現(xiàn)我們374程序只能用查詢進(jìn)行處理USB數(shù)據(jù)的接收和發(fā)送,如果用中斷也是置一個(gè)標(biāo)志位,最后還是要查詢進(jìn)行處理,不像D12的程序,在中斷中處理USB相關(guān)的接收數(shù)據(jù),如果查詢有時(shí)候怕處理不及時(shí),請(qǐng)指點(diǎn),想讓數(shù)據(jù)處理及時(shí)怎么辦呢,還是我程序?qū)戝e(cuò)呢?

可以用中斷方式處理USB事務(wù),只要把示例程序中的USB事務(wù)處理程序改為中斷程序,且啟用相應(yīng)的中斷即可


如原來查詢時(shí) while ( 1 ) { if ( Query374Interrupt( ) ) ; USB_DeviceInterrupt( ); // 等待USB設(shè)備中斷,然后處理USB設(shè)備中斷 } 程序正常 運(yùn)行。 現(xiàn)在把函數(shù)改為 void USB_DeviceInterrupt( void ) interrupt 0 // USB設(shè)備中斷服務(wù)程序

主程序初始化完后,查詢的改為while ( 1 ); 死循環(huán),等待中斷,中斷用下降沿,52單片機(jī),出現(xiàn)在無法識(shí)別USB,這是為什么呢


你中斷方式該為低電平觸發(fā)方式.實(shí)驗(yàn)一下.如果你在處理中斷的時(shí)候去關(guān)閉中斷的話,如果374再來中斷,那么單片機(jī)就無法收到中斷了,這時(shí)就丟掉中斷了.


現(xiàn)在我只開了一個(gè)外部中斷0,低電平方式,但是還是不行的,無法識(shí)別,改為查詢就沒有問題了,是不是程序那些地方要改動(dòng)呢

P0 = 0xFF;//初始化I/O口 P1 = 0xFF; P2 = 0xFF; P3 = 0xFF; IT0 = 0;//初始化中斷 EX0 = 1; EA = 1; CH374_rest=1; CH374_rest=0;

mDelaymS( 50 ); // 等待CH374復(fù)位完成 CH374_PORT_INIT( ); /* CH374接口初始化 */

Init374Device( ); // 初始化USB設(shè)備 while ( 1 ); //現(xiàn)在改為中斷方式所以下面不用執(zhí)行了,等待中斷進(jìn)入 void USB_DeviceInterrupt( void ) interrupt 0 // USB設(shè)備中斷服務(wù)程序,這個(gè)為斷程序和查詢時(shí)一樣的程,只是改做了一個(gè)中斷函數(shù), 這樣寫程序識(shí)別不出來,

如果改為查詢 while ( 1 ) { if ( Query374Interrupt( ) ) ; USB_DeviceInterrupt( ); // 等待USB設(shè)備中斷,然后處理USB設(shè)備中斷 } 這樣USB是可以的,不知為何呢,以前聽說我們的程序不支持這樣中斷,今天試驗(yàn)確實(shí)不成功,請(qǐng)指點(diǎn)


問題搞定了,多謝呀,我復(fù)位腳和原煤來的中斷1腳共用了,謝謝呀


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频