看板 ASM 關於我們 聯絡資訊
你的程式風格... 相信你可以作得更好的 :) 有個暴力方法,這方法很糟糕但是可以滿足你的需求。 首先將迴圈控制變數都宣告成 global UART_RX_ISR( ){ byteReceivedByte = SBUF; if( SBUF == 'E' ){ Test_Pate = 0xffff; //讓所有的迴圈都無法執行就好了 other_loop_variabes = 0xffff; } } 有高手建議的 RTOS寫法,或是multithreading寫法都會有幫助, 但最終的效能還是取決於 i2c code的效率,這邊不改善終究是 有其限制。 ※ 引述《CuckooBoy (新竹的仔)》之銘言: : 我之前的寫法,如下. : 按下E時,不會馬上跳開,要等一段時間. : 另外, if (SBUF=='E'||SBUF=='e') 也會影響速度, : 設越多速度越慢,行數變多,但是會比較靈. : 顧及到速度,及"即時反應"...有更好的方法可以解決嗎? : FLAG EEPROM_Test(void) : { : FLAG ErrorBit = 0; : UWORD Test_Page,Test_Address,Test_Address1; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.207.26
CuckooBoy:你的方法好像可以,我再多試幾次.... 06/08 22:34
CuckooBoy:可以用,真感謝你!雖然暴力,但我的MCU還放得下 06/08 22:44
ksmrt0123:這方法... 不是高手不要用 06/09 01:36
proach:cuckoo知道缺點在那邊嗎?:) 有可能程式crash喔 06/10 01:31
CuckooBoy:缺點在哪呢? 06/11 22:21