Re: 抓取五個A/D值,怎麼分別丟到五個暫存器
|
||||
---|---|---|---|---|
高級會員
|
可以使用樓上前輩的程式,再總和版主的說法,抓八個值取樣不抓五個值
因為除8 只要 右移3 次,就不用特地寫除法了。
發表於: 2006/9/13 9:30
|
|||
|
Re: 抓取五個A/D值,怎麼分別丟到五個暫存器
|
||||
---|---|---|---|---|
初級會員
|
第一步: 設定 站存器
AD1L EQU 0Xxxxx AD1H EQU 0Xxxxx AD2L EQU 0Xxxxx AD2H EQU 0Xxxxx AD3L EQU 0Xxxxx AD3H EQU 0Xxxxx AD4L EQU 0Xxxxx AD4H EQU 0Xxxxx AD5L EQU 0Xxxxx AD5H EQU 0Xxxxx 第二步: AD中斷程式 BCF PIR1,ADIF MOVF AD4L,W MOVWF AD5L MOVF AD4H,W MOVWF AD5H MOVF AD3L,W MOVWF AD4L MOVF AD3H,W MOVWF AD4H MOVF AD2L,W MOVWF AD3L MOVF AD2H,W MOVWF AD3H MOVF AD1L,W MOVWF AD2L MOVF AD1H,W MOVWF AD1H MOVF ADRESH,W MOVWF AD1H BSF STATUS,RP0 MOVF ADRESL,W BCF STATUS,RP0 MOVWF AD1L 再來 只要加總平均既可 我的也是 笨方法 但是 也還不錯用
發表於: 2006/9/13 9:28
|
|||
|
Re: 抓取五個A/D值,怎麼分別丟到五個暫存器
|
||||
---|---|---|---|---|
新會員
|
謝謝你的回覆
我用的是PIC16F684 因為A/D抓取的資料過程中擔心會將突然變高的雜訊抓入影響判斷,所以才想用平均法減低一次抓取的誤判機率. 因為我是菜鳥,可以請您support 程式片段嗎?目前我是用goto 5次後加總除與五的傻方法. 謝謝啦
發表於: 2006/9/13 8:15
|
|||
|
Re: 抓取五個A/D值,怎麼分別丟到五個暫存器
|
||||
---|---|---|---|---|
管理員
|
你好,
請問使用的是那一個 CPU 呢 ? 一般而言 , 使用間接定址 (利用 FSR ) 是一其中的一種方式 . 或是使用一個佔 2 Byte 的變數 , 使其初值為 0 . 然後將 AD 值累加入此佔 2 Byte 的變數. 等到五次後就將累加後的值除以 5 之後就是平均值了 . 除法是很花時間的 , 所以可以累加 8 次之後再以右移 3 bit 的方式來除 8 . 很省時間的啦 :) Regards,
發表於: 2006/9/12 22:20
|
|||
|
抓取五個A/D值,怎麼分別丟到五個暫存器
|
||||
---|---|---|---|---|
新會員
|
因為我的A/D必須要抓五次值丟到五個暫存器後做平均運算,請問一下各位先進程式該怎麼寫的好. 我是用組合語言
發表於: 2006/9/12 18:41
|
|||
|