新闻中心

EEPW首页>嵌入式系统>设计应用> ARM处理器设计的电机电物理量采集系统

ARM处理器设计的电机电物理量采集系统

作者: 时间:2010-12-13 来源:网络 收藏

1)AD数据.A/D转换的数据可以通过中断或查询的方式来访问,如果是用中断方式,全部的转换时间(从A/D转换的开始到数据读出)要更长,因为中断服务程序返回和数据的访问的原因,所以采用查询方式不断检测ADCCONt3j(转换结束标志位)来确定从ADCDAT寄存器读取的数据是否是最新的转换数据.

主要代码有:

#define PRSCVL(206)

#define ADCCON

_

ENABLE_ START(Ox1)

#define STDBM (0x02)

#define PRSCEN(0xll41

void init

_ ADdevice0 //AD设备初始化

{

rADCCON=(PRSCVLlADCCON_ENABLE_STARTISTDBMIPRSCEN);

)

int GetADresuh(int channe1)

{

rADCCON=ADCCON

— ENABLE— START—BYREADI(channel3)IPRSCENIPRSCVL;

while(!frADCCONADCCON—FLAG)); //AD转换结束

return f0x3ffrADCDATO); //返回采样值

}

2)数据发送.异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送.数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线即可进行.接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符.为了恢复发送的信息,双方必须协调工作.在微型计算机中大量使用异步串行I/O 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差。因此实现较容易.主要代码有:

int Uart_

Init(int whichUart,int baud)

{

if(whichUaxt>=NumberOfUartDrv)

return FALSE;

return serial_

drv[whichUart]->init(baud);

}

int Uart_ SendByte(int whichUart,int data)

{

if(whichUart>=NumberOfUartDrv)

return FALS E;

return serial— .drv[whichUart]->write(data);



评论


相关推荐

技术专区

关闭