2009年8月28日 星期五
AVR Dragon 的包裝
2009年8月26日 星期三
RTX51 Full Porting on 8051
研究了將近一個月 RTX-51 Full 終於在今天成功的 Porting 到 8051 上面了!不過還是有點問題,就是 semaphore 跟 mailbox 都還不能使用。可惜的是前幾天打電話給 Keil 的代理商想詢問有關 RTX51 的訊息,沒想到得到的結果竟然是 RTX51 停產的消息。RTX-Tiny 雖然內建在 PK51 上面,但是功能遠遠輸給 RTX51 Full 版,很遺憾的是網路上面相關的訊息真的是少之又少。通常這種情況只有兩種可能:
1. 此路不通,建議改走別的方法。
2. 走在全世界的尖端,開創一條別人沒走過的路。
不過 99% 都是後者,只有 1% 靠運氣也靠實力才有機會走到 2。目前手邊還有 uCOS II 跟 FreeRTOS 這兩個 Operating System,希望也能夠 Porting 成功!By the way, 今天真是個特別的日子~
1. 此路不通,建議改走別的方法。
2. 走在全世界的尖端,開創一條別人沒走過的路。
不過 99% 都是後者,只有 1% 靠運氣也靠實力才有機會走到 2。目前手邊還有 uCOS II 跟 FreeRTOS 這兩個 Operating System,希望也能夠 Porting 成功!By the way, 今天真是個特別的日子~
2009年8月5日 星期三
軟體模擬 UART
今天早上臨時起意想說來研究一下 Software 的 UART,結果下午就測試成功了。UART 是一種 8051 用來跟外界通訊的介面,通常一顆 MCU 裡面只有配置 1~2 組(大部分都是一組)。因此,如果您已經使用其中一組來與PC 端通訊的話,您就無法跟其他微電腦進行通訊了。軟體模擬 UART 的概念很簡單,就只是利用 Carriage Flag 來進行並列轉串列傳送資料。今天的整合中,最困難的一點就是將 Assembly(A51) 跟 Keil C51 進行結合。事實上,同時使用 C 及 Assembly 並沒有想像中困難,但是如果要自己寫 Assembly 函式並且在 C 裡面使用的話,對於記憶體備份要特別小心。
今天另外找到了這個禮拜遇到的一個大 BUG,就是在 ADC 讀取時會發生某特定位元出錯的問題。後來只利用了一個簡單的 loop_delay() 就解決了。原因是 DATA signal 比 Sweep signal 相位落後一點點所造成。MCU 接收到 Sweep signal 後,準備要接收時,DATA signal 才剛好處於 Rising edge 此時進行訊號擷取容易造成誤判。下圖就是我把示波器當做數位邏輯器的照片(DATA signal)
今天另外找到了這個禮拜遇到的一個大 BUG,就是在 ADC 讀取時會發生某特定位元出錯的問題。後來只利用了一個簡單的 loop_delay() 就解決了。原因是 DATA signal 比 Sweep signal 相位落後一點點所造成。MCU 接收到 Sweep signal 後,準備要接收時,DATA signal 才剛好處於 Rising edge 此時進行訊號擷取容易造成誤判。下圖就是我把示波器當做數位邏輯器的照片(DATA signal)
2009年8月3日 星期一
Software PWM for multi-channel
訂閱:
文章 (Atom)