在线时间0 小时
UID2085959
注册时间2014-4-15
NXP金币0
该用户从未签到
新手上路

- 积分
- 37
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2014-4-30 16:33:25
|
显示全部楼层
回复:【新手求助】自己拼一个ATD的程序,没编译出来
回复第 2 楼 于2014-04-24 09:06:47发表:
你好,楼主!
能否再详细的解释一下问题,如关于芯片的型号,关键的代码等,不然我们很难判断问题的原因及提供相关的技术支持的。
谢谢!
谢谢师兄的关注,现在程序调试通过了,但写入时出现了这样的警告
在单片机里有部分无法运行,
单片机为DP256
pc系统为window xp
lcd程序为,12864的串口程序
主程序:
#include
#include "derivative.h"
#include "lcd.h"
#define LEDCPU PORTK_BIT4
#define LEDCPU_dir DDRK_BIT4
unsigned char AD_in1,AD_in2;
/*************************************************************/
/* 初始化AD模块 */
/*************************************************************/
void INIT_AD(void)
{
ATD0CTL2 = 0xc0; //启动A/D模块,快速清零,禁止中断
ATD0CTL3 = 0x08; //每次只转换一个通道
ATD0CTL4 = 0x81; //选用8位模数转换,AD模块时钟频率为2MHz
}
/*************************************************************/
/* 起动AD转换 */
/*************************************************************/
unsigned char AD_capture(unsigned char s)
{
unsigned char AD_data;
switch(s)
{
case 1:
ATD0CTL5 = 0x81; //转换AD01
while(!ATD0STAT1_CCF0);
AD_data = ATD0DR0L;
break;
case 2:
ATD0CTL5 = 0x80; //转换AD00
while(!ATD0STAT1_CCF0);
AD_data = ATD0DR0L;
break;
}
return(AD_data);
}
/************************************************************/
/* 在液晶上显示接收到的数据 */
/************************************************************/
void play_data(void)
{
write_command(0x80);
write_Data(AD_in1);
write_command(0x90);
write_Data(AD_in2);
}
/*************************************************************/
/* 主函数 */
/*************************************************************/
void main(void) {
DisableInterrupts;
LEDCPU_dir = 1;
INIT_AD();
INIT_PORT();
EnableInterrupts;
LEDCPU = 0;
for(;;)
{
AD_in1 = AD_capture(1);
AD_in2 = AD_capture(2);
play_data();
if(AD_in1 > AD_in2)
LEDCPU = 0;
else
LEDCPU = 1;
}
}
最后,谢谢师兄。
|
|