如何將GPIO讀到的0.1訊號,存放到一個陣列,並以16進制的格式輸出? |
答題得分者是:暗黑破壞神
|
Tommy0325
一般會員 發表:5 回覆:4 積分:1 註冊:2007-05-04 發送簡訊給我 |
請教一下:
我使用2之GPIO腳位 P2.17=CLCOK P2.19=DATA 我使用MCU的GPIO腳來讀取資料回傳的訊號訊號..當MCU的CLOCK為High(上升沿)的時候我可以得到GPIO腳位DATA的準位~~不是接收到High不然就是接收Low!! 若要將接收到的DATA訊號以8次接收的訊號(8Bits=1Byte)存放到一個陣列裡....並且DATA先接收的訊號要存放到陣列的LSB...DATA最後接收到的訊號存放至MSB...堆疊的觀念..最後要將這個陣列的資料以printf()輸出....例如輸出的格式是A8(#16進制).....程式應該要怎麼表示呢?? 希望能得到具體有建設性的答案..不要得到的答案只是說這很簡單..因為我來這邊發問就是想學習.. 麻煩程式高手指導一下~~謝謝!! |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
這個真的是很簡單。
只是你有沒有搞清楚幾件事情而已。 >存放到一個陣列,並以16進制的格式輸出? 資料如何存放到”陣列”?你會了嗎? 以 16 進制的格式輸出你會了嗎? CLOCK 的改變,你的 MCU 怎麼知道?你有規劃嗎? 要不斷的去掃,還是用 timer? 還是要用 interrupt? 你有想過嗎? 如何判定這個 byte 的啟始位元?你有規劃這個通訊方法嗎? 答案是很簡單,每一步你都要去思考怎麼解決。 想要人能指導你,你要先說清楚你的問題點在那邊。 而不是把這一大串的問題全丟上來。 你先想清楚你的問題出在那邊吧。 ===================引 用 Tommy0325 文 章=================== 請教一下: 我使用2之GPIO腳位 P2.17=CLCOK P2.19=DATA 我使用MCU的GPIO腳來讀取資料回傳的訊號訊號..當MCU的CLOCK為High(上升沿)的時候我可以得到GPIO腳位DATA的準位~~不是接收到High不然就是接收Low!! 若要將接收到的DATA訊號以8次接收的訊號(8Bits=1Byte)存放到一個陣列裡....並且DATA先接收的訊號要存放到陣列的LSB...DATA最後接收到的訊號存放至MSB...堆疊的觀念..最後要將這個陣列的資料以printf()輸出....例如輸出的格式是A8(#16進制).....程式應該要怎麼表示呢?? 希望能得到具體有建設性的答案..不要得到的答案只是說這很簡單..因為我來這邊發問就是想學習.. 麻煩程式高手指導一下~~謝謝!! |
Tommy0325
一般會員 發表:5 回覆:4 積分:1 註冊:2007-05-04 發送簡訊給我 |
存放到一個陣列,並以16進制的格式輸出?
資料如何存放到”陣列”?你會了嗎? ANS:會陣列,但是對於將所有掃描的準位一次放入,不是很熟,就是不太清楚才來問..請指導,不要一直罵我.. 以 16 進制的格式輸出你會了嗎? CLOCK 的改變,你的 MCU 怎麼知道?你有規劃嗎? ANS:我的電路有獨立CLOCK,MCU也有CLOCK,所以我是用偵測GPIO腳位的變化,我有提到過...我的MCU的CLOCK比電路CLOCK的時脈還要快... 要不斷的去掃,還是用 timer? 還是要用 interrupt? 你有想過嗎? 如何判定這個 byte 的啟始位元?你有規劃這個通訊方法嗎? ANS:我要先將啟始位元掃出來,我才會規定他為我第一個Bit...... 答案是很簡單,每一步你都要去思考怎麼解決。 想要人能指導你,你要先說清楚你的問題點在那邊。 ANS:我說的很清楚....對於你這種高手很簡單...但是對於初學者必須思考過後..問題知道在哪..我才能將問題提出來...我也有提的很清楚了...謝謝!! 而不是把這一大串的問題全丟上來。 你先想清楚你的問題出在那邊吧。 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
所以你的問題只在怎麼把它放進陣列嗎?
===================引 用 Tommy0325 文 章=================== 存放到一個陣列,並以16進制的格式輸出? 資料如何存放到”陣列”?你會了嗎? ANS:會陣列,但是對於將所有掃描的準位一次放入,不是很熟,就是不太清楚才來問..請指導,不要一直罵我.. 以 16 進制的格式輸出你會了嗎? CLOCK 的改變,你的 MCU 怎麼知道?你有規劃嗎? ANS:我的電路有獨立CLOCK,MCU也有CLOCK,所以我是用偵測GPIO腳位的變化,我有提到過...我的MCU的CLOCK比電路CLOCK的時脈還要快... 要不斷的去掃,還是用 timer? 還是要用 interrupt? 你有想過嗎? 如何判定這個 byte 的啟始位元?你有規劃這個通訊方法嗎? ANS:我要先將啟始位元掃出來,我才會規定他為我第一個Bit...... 答案是很簡單,每一步你都要去思考怎麼解決。 想要人能指導你,你要先說清楚你的問題點在那邊。 ANS:我說的很清楚....對於你這種高手很簡單...但是對於初學者必須思考過後..問題知道在哪..我才能將問題提出來...我也有提的很清楚了...謝謝!! 而不是把這一大串的問題全丟上來。 你先想清楚你的問題出在那邊吧。 |
Tommy0325
一般會員 發表:5 回覆:4 積分:1 註冊:2007-05-04 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
我不是老師。我只是個無業遊民,好管閒事。
好吧。依你說的。後面你都會了。(其實我是懷疑啦,不過你說會就會。) 那你可以找到 start bit 了嘛。 那你就找個 counter 來用。 array [counter] = hi/low 記錄。 而每一次 clock 變動時,你就把 counter 加一,這個你要看你的 counter 要在上昇緣做還是下降,還是平 level 時做。 這個你去思考。這個部份在硬體上沒那麼簡單。 那經過 array[count] 16 次以後,不就可以得到你要的 串列了嗎? PS。我反而覺得這個部份是最簡單的。 喔。再附贈一個,你要怎麼把這個串列變成一個 word 也就是兩個 byte. 你可以宣告一個 unsigned short(確保最高位不會變成符號) 然後用<<或是>>來把一個 bit 一個 bit 的數據”推入”目標。 就會是你要的了。 ===================引 用 暗黑破壞神 文 章=================== 所以你的問題只在怎麼把它放進陣列嗎? ===================引 用 Tommy0325 文 章=================== 存放到一個陣列,並以16進制的格式輸出? 資料如何存放到”陣列”?你會了嗎? ANS:會陣列,但是對於將所有掃描的準位一次放入,不是很熟,就是不太清楚才來問..請指導,不要一直罵我.. 以 16 進制的格式輸出你會了嗎? CLOCK 的改變,你的 MCU 怎麼知道?你有規劃嗎? ANS:我的電路有獨立CLOCK,MCU也有CLOCK,所以我是用偵測GPIO腳位的變化,我有提到過...我的MCU的CLOCK比電路CLOCK的時脈還要快... 要不斷的去掃,還是用 timer? 還是要用 interrupt? 你有想過嗎? 如何判定這個 byte 的啟始位元?你有規劃這個通訊方法嗎? ANS:我要先將啟始位元掃出來,我才會規定他為我第一個Bit...... 答案是很簡單,每一步你都要去思考怎麼解決。 想要人能指導你,你要先說清楚你的問題點在那邊。 ANS:我說的很清楚....對於你這種高手很簡單...但是對於初學者必須思考過後..問題知道在哪..我才能將問題提出來...我也有提的很清楚了...謝謝!! 而不是把這一大串的問題全丟上來。 你先想清楚你的問題出在那邊吧。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |