中级会员
- 积分
- 335
- 威望
- 252
- 贡献
- 59
- 兑换币
- 12
- 注册时间
- 2011-8-7
- 在线时间
- 12 小时
|
把AD的转换的值用串口发出来,结果现在发现串口发出的值一直都是255,不知道为什么,请给位给点指导,谢谢。
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
byte data;
void ADCInit()
{
ATD0CTL2=0xc0; //AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断禁止
ATD0CTL3=0x20; // 每个序列4次转换, No FIFO, Freeze模式下继续转换
ATD0CTL4=0x83; // 8位精度, 2个时钟, ATDClock=[BusClock*0.5]/[PRS+1] ; PRS=3, divider=8
ATD0CTL5=0xA0; //右对齐无符号,单通道采样,通道0
ATD0DIEN=0x00; // 禁止数字输入
}
void SCI0_Init(void)
{
SCI0BDL = (unsigned char)((16000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ / 16 /*factor*/);
SCI0CR1=0X00;
SCI0CR2=0X0C;
}
void sci_write(byte data) {//SCI写函数
while(!(SCI0SR1_TDRE));//判断发送是否准备好
SCI0DRH=0;
SCI0DRL=data;
}
void main(void) {
ADCInit(); //AD初始化
SCI0_Init();
for(;;) {
while(!ATD0STAT1_CCF0); //等待转换结束
data=ATD0DR0;
while(!(SCI0SR1_TDRE));
sci_write((byte)data);
}
}
请各位高手帮我改一下,谢了。
|
|