Re: 問題: 不連續的IO,有沒有什麼語法可以達成連續的方法
|
||||
---|---|---|---|---|
版主
![]() ![]() ![]() |
單純使用 I/O 腳來測量那麼多的方波頻率,除非輸入的方波頻率是很低的頻率,否則在短時間是測量不出來的。
建議可以使用 I/O 腳配上PPS 切換功能給三個 Timer 1,2,3 的 Gate Time 周邊來一一測量方波的頻率。 24 個輸入可以每 8 個對應到一個 Timer 來測量。三組 Timer 的 gate Timer 模組即可測量到 24 個輸入。即使輸入頻率很高也可以很快地就算出所有腳位的輸入頻率,而且是用硬體算的也不會有誤差。 底下是建議可以使用的元件: PIC18F27/47/57Q43 : 28/40/44/48-Pin, Low-Power, High-Performance Microcontroller with XLP Technology 所有的 I/O 腳都有 PPS 腳位切換功能。 PIC16F18875, 18876 及 18877 是F1 加強版 MCU,所有的 I/O 腳都有 PPS 腳位切換功能。
發表於: 2020/9/21 11:52
|
|||
|
Re: 問題: 不連續的IO,有沒有什麼語法可以達成連續的方法
|
||||
---|---|---|---|---|
初級會員
![]() ![]() ![]() |
請教 jason680 大大,
可否依照我重新說明案子及附上電路圖, 來具體教導陣列對映表如何實作出不連續的IO, 懇請舉個範例, 懇請賜教~! 謝謝~!
發表於: 2020/9/21 10:45
|
|||
|
Re: 問題: 不連續的IO,有沒有什麼語法可以達成連續的方法
|
||||
---|---|---|---|---|
初級會員
![]() ![]() ![]() |
不好意思我沒說明清楚需求,
我再試著說明一下, 我有一個案子, 需掃描24個IO的方波頻率, 下列大致是我的程式碼, 其中for 迴圈中的dasp_scan(); 帶入的 " S_IN_2_PORT "目前只能針對一個IO來做 請問有沒有什麼語法可以通過for或其它方式對應到MCU的24個IO ? void dasp_scan(bool iostate, uint8_t *state, uint8_t *time, uint8_t *t2_time) struct data_24 { uint8_t d[24]; } dasp_time, dasp_state,T2_time; for(i=0;i<24;i++) { dasp_scan(S_IN_2_PORT, &dasp_state.d[ i ], &dasp_time.d[ i ], &T2_time.d[ i ]); }
發表於: 2020/9/21 10:17
|
|||
|
Re: 問題: 不連續的IO,有沒有什麼語法可以達成連續的方法
|
||||
---|---|---|---|---|
版主
![]() ![]() ![]() |
請問是不是要做 Segment LCD 的輸出顯示控制呢? 如果是的話,可以參考 W301 的教育訓練第一章節部分: 如何顯示 LCD 的設定自行。我是使用 switch case 加上查表方式做固定字型的顯示。
發表於: 2020/9/21 9:44
|
|||
|
Re: 問題: 不連續的IO,有沒有什麼語法可以達成連續的方法
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
for迴圈內用do case 或者用 if 判斷式 ...
如常用 則設成 function .... .
發表於: 2020/9/20 18:43
|
|||
|
Re: 問題: 不連續的IO,有沒有什麼語法可以達成連續的方法
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
說簡單很簡單....
說困難很困難.... 說說簡單的... 用一個陣列對映表就可以... 再說困難的.... 不會用/不想用/不是你要的...
發表於: 2020/9/19 15:17
|
|||
程式是
依照寫出來(的code),跑出結果 不是依照你想出來的,得到結果 先有需求規格 後有解決方案 |
||||
|
問題: 不連續的IO,有沒有什麼語法可以達成連續的方法
|
||||
---|---|---|---|---|
初級會員
![]() ![]() ![]() |
請教一下,
使用PIC16F1937 MCU, 硬體規劃總共有24支不連續的IO, 有沒有什麼語法定義可以達成使用for迴圈, 做到連續指定到對應IO的方法?
發表於: 2020/9/18 15:50
|
|||
|