430代码:定时器B定时每隔6.25微秒中断一次,在定时器B的中断处理函数中只有三句话:
ADC10CTL0 |= ADC10SC;
while(!(ADC10IFG & BIT0));
A[jj++] = ADC10MEM0;
这三句话,老板要让用汇编实现,可是小弟没怎么接触过汇编,所以来论坛请教下各位大神。
1、C语言代码中能够直接嵌入汇编语句吗?有什么格式要求吗?
2、小弟将自己写的汇编发上来,大家帮我看看。我现在只能实现每次中断采样只能放在数组的第一个元素内。
#include "msp430f5259.h"
NAME asmfile
extern jj
extern A
PUBLIC volatge_do
RSEG CODE
volatge_do:
push.w R15
bis.w #0x1,&ADC10CTL0
lab1:
bit.w #0x1,&ADC10IFG
jnc lab1
mov.w &jj,R15
rla.w R15
mov.w &ADC10MEM0,A(R15)
inc.w R15
pop.w R15
ret
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
数组A是定义在C语言中的存储AD采集数据的数组,jj是数组A的下标。
请各位大神们帮我找找里面的错误。 |