专家你好!
ADC_cal
MOVW DP, #ADCREFSEL_LOC >> 6
MOV @28, #0xAAAA ; actual value may not be 0xAAAA
MOV @29, #0xBBBB ; actual value may not be 0xBBBB
LRETR
第一条指令移位6位?ad不是12位精度么 16位的数据不是移位4位么?呵呵 那个ADCREFSEL_LOC看不懂 主要是 麻烦解释下 谢了0...0可以的话把后面两句指令也解释下 呵呵
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
专家你好!
ADC_cal
MOVW DP, #ADCREFSEL_LOC >> 6
MOV @28, #0xAAAA ; actual value may not be 0xAAAA
MOV @29, #0xBBBB ; actual value may not be 0xBBBB
LRETR
第一条指令移位6位?ad不是12位精度么 16位的数据不是移位4位么?呵呵 那个ADCREFSEL_LOC看不懂 主要是 麻烦解释下 谢了0...0可以的话把后面两句指令也解释下 呵呵
你好!
.def _ADC_cal /* 定义代码段名称 */
.asg "0x711C", ADCREFSEL_LOC /* ADCREFSEL_LOC 是 ADC Reference Select Register, 地址0x711C */
/* C28 core 中, DP是 数据段 的 地址,每段大小64, 32bitDataAddr(21:6) = DP(15:0) */
MOVW DP, #ADCREFSEL_LOC >> 6 /* 右移动6bit 获得 数据段首地址 */
/* 此时, DP = 0x7100 */
MOV @28, #0xAAAA /* 地址 : 0x7100 + 28 */
MOV @29, #0xBBBB /* 地址 : 0x7100 + 29 */
MOVW DP, #ADCREFSEL_LOC >> 6 /* 右移动6bit 获得 数据段首地址 */
/* 此时, DP = 0x7100 */
怎么理解 右移6位 又没有移回去啊?
0xAAAA
0xBBBB
怎么理解啊
谢谢
这是通过BOOT 模式中,经由ADC_cal进行引导,再进入main()函数代码吧?