中级会员
- 积分
- 495
- 威望
- 334
- 贡献
- 63
- 兑换币
- 161
- 注册时间
- 2012-9-9
- 在线时间
- 49 小时
|
//这个程序是用来采集2个传感器传回的信号进行转化,可是一起用的时候就出现问题。单独用一个AD没问题。恳求大神们拯救。。。。。
#include "main.h"
//uint counttime,showtime;
//uchar pwmflag,modecount,delaycount;
unsigned int AdResult[4];
unsigned count;
unsigned int sampletimes=0;
void main(void) {
/* put your own code here */
// unsigned char value;
SetBusCLK_64M(); // 选择待设定的总线频率
Port_init(); // IO口初始化
PWM_Init(); // PWM 初始化
LCD_Init(); // LCD 初始化
AD_Init() ; // AD 初始化
PIT_Init(); // 中断初始化
// Capture_Init(); // 捕捉初始化
LCD_clear(); // 清屏幕
EnableInterrupts; // 开总中断
for(;;) {
}
for(;;) {
} /* loop forever */
/* please make sure that you never leave main */
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT0_ISR(void)
{
DisableInterrupts; // 关闭总中断
LCD_Write_Num(0,5,AdResult[2],4);
LCD_Write_Num(54,5,AdResult[3],4);
PORTE_PE7=1;
AdResult[3]=0;
AdResult[2]=0;
// AdResult[1]=0;
// AdResult[0]=0;
for(;sampletimes<20;sampletimes++) {
while(!(ATD0STAT0&0x08));
{
// AdResult[0]+=ATD0DR0;
// AdResult[1]+=ATD0DR1;
AdResult[3]+=ATD0DR3;
}
while(!(ATD0STAT0&0x04)) ; {
AdResult[2]+=ATD0DR2;}
}
AdResult[3]=AdResult[3]/20;
AdResult[2]=AdResult[2]/20;
// AdResult[1]=AdResult[1]/20;
// AdResult[0]=AdResult[0]/20;
sampletimes=0;
PORTE_PE7=0; // finish with 89us
PORTB_PB7=~PORTB_PB7;
PITTF_PTF0=1; // 清中断标志位
EnableInterrupts;
}
|
|