• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






請問查表這樣的寫法對嗎
#1
初級會員
初級會員


查看用戶資訊
這是我練習寫ADC的一部份程式
我只想讀出特定幾個值.所以加了一張TABLE
想把表中的特定值抓出來就好
請問這樣子的寫法對嗎

AD_CONVERT
BSF ADCON0,GO

ADC_WAIT
BTFSC ADCON0,GO
GOTO ADC_WAIT
movf ADRESH,W
MOVWF ADC_TEMP1
CALL ADC_VAL
MOVWF TMR1H
BSF ADCON0,GO
goto AD_CONVERT

ADC_TABLE
ADDWF PCL,F
RETLW D'928'
RETLW D'923'
RETLW D'918'
RETLW D'912'
RETLW D'907'
RETLW D'901'
RETLW D'894'
RETLW D'888'
RETLW D'881'
RETLW D'874'
RETLW D'867'
RETLW D'860'
RETLW D'852'
RETLW D'845'
RETLW D'837'
RETLW D'828'
RETLW D'820'
RETLW D'811'

發表於: 2007/2/13 16:31
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問查表這樣的寫法對嗎
#2
初級會員
初級會員


查看用戶資訊
查表 OK 但是直不能超過255

若是超過 必須建2個查表

ADC_TABLE_HIGH:
ANDLW H'0F' << 依查表值的多寡 我是以 16個算
ADDWF PCL
RETLW HIGH(D'928')
RETLW HIGH(D'923')
RETLW HIGH(D'918')
RETLW HIGH(D'912')
RETLW HIGH(D'907')
RETLW HIGH(D'901')
RETLW HIGH(D'894')
RETLW HIGH(D'888')
RETLW HIGH(D'881')
RETLW HIGH(D'874')
RETLW HIGH(D'867')
RETLW HIGH(D'860')
RETLW HIGH(D'852')
RETLW HIGH(D'845')
RETLW HIGH(D'837')
RETLW HIGH(D'828')

ADC_TABLE_LOW:
ANDLW H'0F'
ADDWF PCL
RETLW LOW(D'928')
RETLW LOW(D'923')
RETLW LOW(D'918')
RETLW LOW(D'912')
RETLW LOW(D'907')
RETLW LOW(D'901')
RETLW LOW(D'894')
RETLW LOW(D'888')
RETLW LOW(D'881')
RETLW LOW(D'874')
RETLW LOW(D'867')
RETLW LOW(D'860')
RETLW LOW(D'852')
RETLW LOW(D'845')
RETLW LOW(D'837')
RETLW LOW(D'828')



發表於: 2007/2/13 17:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問查表這樣的寫法對嗎
#3
高級會員
高級會員


查看用戶資訊
1..程式看起怪怪的...
2..TABLE 的值都是2BYTE耶...
3..Cwen大大的寫法..學起來...感謝


查表 -->1byte查法...
//----------------------------------
MOVLW D'2' --> W=2
CALL tab_data
MOVWF bReg0 ---> bReg0 = W = 2
......
//----------------------------------
tab_data:
ADDWF PCL,F --> PCL + 2
RETLW D'0'
RETLW D'1'
RETLW D'2' ---> RETURN W=2
RETLW D'3'

發表於: 2007/2/13 17:14
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問查表這樣的寫法對嗎
#4
初級會員
初級會員


查看用戶資訊
感謝Cwen大大和Blake的回答
我對RETLW比較清楚了

另外還有一點疑問
Cwen大大提到值不能超過255.若超過要建2個表

那ADC的值出來後是要CALL HIGH&LOW這2個表

EX.. movf adresh,w
movwf acd_value
call adc_high_table
call adc_low_table
這樣嗎??還是
EX.. movf adresh,w
movwf acd_value
call adc_table

adc_table
addwf pcl,w
adc_high_table
retlw high(D'928')
.
.
adc_low_table
retlw low(D'928')
.
.
還是這樣嗎??
PS: 我是個大嫩咖~"~ 麻煩各位解答一下...感謝



發表於: 2007/2/13 17:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問查表這樣的寫法對嗎
#5
版主
版主


查看用戶資訊
HIGH 是 MPASM 的 directive instruction 意思就是將一個 Word 的資料理只抓出 MSB 來, LOW 是抓出 LSB 的資料。因為你的資料出過 8-bit 所以就要分兩次抓,第一次抓 High Byte 在用同樣的Index 去抓Low Byte 。

發表於: 2007/2/14 10:04
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------