Re: 關於產生一個20khz方波問題
|
||||
---|---|---|---|---|
版主
|
參照:
好,高招 ! 感謝分享。
發表於: 2008/10/21 13:53
|
|||
|
Re: 關於產生一個20khz方波問題
|
||||
---|---|---|---|---|
資深會員
|
再教你一爛招
沒有辦法的辦法 UART / SPI 都能產生 CLOCK 輸出 20KHZ 只要 baud rate 設成 40k ,然後 約500us 填入 0x55 到 uart 的 txreg , uart tx pin 就會輸出 20khz 的信號 spi 也能這樣模擬
發表於: 2008/10/21 13:33
|
|||
|
Re: 關於產生一個20khz方波問題
|
||||
---|---|---|---|---|
版主
|
當然這段中斷程式考慮用 In-Line Assembly 來寫,如果是用 MPLAB C18 可以參考 W401 教育訓練的第七章說明。
如果是用 PIC18F 的話。查表運算那些交給低優先權中斷,20KHz 的中斷交給高優先全中斷來做。
發表於: 2008/10/21 10:46
|
|||
|
Re: 關於產生一個20khz方波問題
|
||||
---|---|---|---|---|
資深會員
|
Microchip OS 最佳解法
人客,再來一顆 10f200 1MHZ都可以產生
發表於: 2008/10/20 13:23
|
|||
|
Re: 關於產生一個20khz方波問題
|
||||
---|---|---|---|---|
資深會員
|
具體來說25us進入中斷一次,轉換IO的狀態(H->L或L->H)就可以了。
中斷的程式具體如下,以組語來看大約50行組語。
#pragma code high_vector=0x08
25us之間可以執行25000ns/100ns = 250 行組語,扣掉進入ISR及ISR本身執行的部分。大約有 200 行左右的餘裕量可用。如果中斷超過25us,不知道只是產生方波為何需要寫那麼多程式。 你可能需要聊聊你的需求...^_^
發表於: 2008/10/20 12:15
|
|||
不要問我哪裡來,我只是個流浪天涯的工程師
|
||||
|
Re: 關於產生一個20khz方波問題
|
||||
---|---|---|---|---|
資深會員
|
參照:
+1 (我想要不是想練功夫,不然就是腳被佔用了,又不方便改....,so.....) 一般事件計時用timer0, 低優先權 方波產生用timer1, 高優先權
發表於: 2008/10/20 9:45
|
|||
|
Re: 關於產生一個20khz方波問題
|
||||
---|---|---|---|---|
版主
|
PIC18F 進入中斷的反應時間為 3Tcy 返回為 2Tcy,共5個 Tcy 時間。
以 40MHz 的速度來算需花掉 0.5uS (100ns x 5Tcy) 再加上 Timer 中斷處理及I/O腳位的反轉,我認為最短只要 1uS 的中斷處理時間,最快大約可以做到約0.5MHz的輸出。 贊成Master的觀點,你應該是在中斷李作了很多的事情所以才會來不及。 不過既然PIC18F有 CCP Module 為何不用它來產生 20KHz 的方波呢?
發表於: 2008/10/20 8:23
|
|||
|
Re: 關於產生一個20khz方波問題
|
||||
---|---|---|---|---|
資深會員
|
我用C18透過timer做過40KHz(for超音波)方波,所以你20KHz寫不出來應該是你程式寫的有問題。
發表於: 2008/10/20 7:27
|
|||
不要問我哪裡來,我只是個流浪天涯的工程師
|
||||
|
關於產生一個20khz方波問題
|
||||
---|---|---|---|---|
新會員
|
請問我要產生一個20khz的方波, 不要用pwm mode 去產生,
我己經把振盪頻率拉到40Mhz, 目前使用c18 寫, 發現光基本 的架構進到timer 中斷間, 就己經超過25us 了, 是否不能用c18 , 一定要用組語嗎?
發表於: 2008/10/20 0:12
|
|||
|