中级会员
- 积分
- 275
- 威望
- 239
- 贡献
- 30
- 兑换币
- 0
- 注册时间
- 2010-11-27
- 在线时间
- 3 小时
|
3#
楼主 |
发表于 2011-1-25 13:45:56
|
只看该作者
回复 2# 近水楼台
片内的A/D,//信号线接到AD00,行中断接到PORTT6,场中断接到PORTT7口
//锁相环设定
void PLL_Init(void)
{ //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
CLKSEL=0X00; //PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1)
PLLCTL=0xe1;
SYNR=2;
REFDV=1;
PLLCTL=0X60;
asm NOP;//空操作,进行简单的延时,等待锁相环的相应
asm NOP;
asm NOP;
while((CRGFLG&0X08)==0); //时钟校正同步
CLKSEL=0X80;
}
//AD设定
void AD_Init(void)
{
ATD0CTL1=0x00;//禁止外部触发,
ATD0CTL2=0x40;//标志位快速清零,中断禁止
ATD0CTL3=0x88;//右对齐无符号.转换序列长度为1,No FIFO模式,Freeze模式下继续转换?
ATD0CTL4=0x00;//4AD采样周期,ATDClock=[BusClock*0.5]/[PRS+1] ; PRS=0, divider=12 ?
ATD0CTL5=0xa0;//特殊通道禁止,单通道采样,扫描模式连续采样,ch AN0
ATD0DIEN=0x00;//禁止数字输入
}
//compsite output行中断例程
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 14 PORTT6_ISR(void)
{
byte i, tem;
DisableInterrupts;
PORTB = 0xc3;
TFLG1_C6F = 1;
++ c;
if(c%M || c<100 || c>400)
{
EnableInterrupts;
return ;
}
for(i=0;i<ROW&&column<COLUMN;++i)
{
while(!ATD0STAT2_CCF0)
;
image[column] = ATD0DR0;
}
++ column;
EnableInterrupts;
}
这是部分代码,帮忙看看,谢谢大侠! |
|