智能车制作
标题:
求帮助
[打印本页]
作者:
木子江11
时间:
2010-12-30 00:15
标题:
求帮助
我刚开始学单片机,最近在写CCD摄像头图像采集的程序,用的是片内AD,写了段代码有问题,希望有高手看看,指点一下,程序中还应注意什么问题?、?
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
uchar image[62][20]; //采集62行,20列
uchar row=0,column=0,rowcount=0; //行数,列数
//uchar count=0; //定时器计数
void clock_init(void){
CLKSEL=0X00;
PLLCTL_PLLON=1; //锁相环电路使能
REFDV=1;
SYNR=2; //总线频率=16M*(SYNR+1)/(REFDV+1)=24M
while(!(CRGFLG & 0x08)); //等待VCO达到稳定
CLKSEL=0x80; //打开PLL,选定锁相环时钟
}
void peh_init(void){ //中断初始化,PE1接行中断,PH1接场中断
DDRH=0x00; //设置H口为输入
PERH=0xff; //上拉使能寄存器
PPSH=0xff; //极性选择寄存器上升沿触发
PIEH=0xff; //中断使能寄存器
PIFH=0xff; //清除中断标志位
IRQCR_IRQEN=1; //中断使能
IRQCR_IRQE=1; //下降沿触发
}
void ad_init(void){
ATD0CTL1=0x00; //7:1-外部触发,8位精度,采样前不放电
ATD0CTL2=0x40; //自动清零,禁止外部触发, 禁止中断
ATD0CTL3=0xE0; //右对齐无符号(ATD0DR0H),转换序列长度为12,没有映射,冻结模式下继续转换
ATD0CTL4=0x05; //采样时间为4个AD时钟周期,PRS=2,ATDClock=Bus/2*[PRS+1]=48/12=4mhz,
ATD0CTL5=0x30; //单次AD转换模式,单通道AD转换,转换通道:AD0
ATD0DIEN=0x00; //禁止数字输入
}
void main(void){
clock_init();
peh_init();
ad_init();
row=0; //行计数清零
column=0; //列计数清零
EnableInterrupts;
for(;;) {
_FEED_COP(); /* feeds the dog */
} /* loop forever */
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED //指示该程序在不分页区
interrupt 25 void ISR_VS(void){ //PH1场中断
row=0;
rowcount=0;
IRQCR_IRQEN=1; //行中断使能
PIFH=0xff; //清除场中断标志位
PPSH=~PPSH; //从上升沿触发改为下降沿触发
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED //指示该程序在不分页区
interrupt 6 void ISR_HS(void){ //PE1行中断
IRQCR_IRQEN=0; //关闭行中断
rowcount++; //行数加1
if(rowcount%5==0){ //每隔5行采一次数据
/* PITCFLMT_PITE=1; //定时中断通道0使能
while(!(count==2)); //等待行消隐信号结束,4*2.5us=10us
count=0;
PITCFLMT_PITE=0; //定时器通道0关 */
for(column=0;column<20;column++){ //一行采20个点
ATD0CTL5 = 0x30; //开始一次新的转换
while(!ATD0STAT0_SCF); //等待AD0转换结束
image[row][column]=ATD0DR0L;
}
row++;
}
IRQCR_IRQEN=1; //行中断使能
}
作者:
木子江11
时间:
2010-12-30 00:16
用的是xs的单片机
作者:
sparker
时间:
2011-1-3 19:50
能说说是什么问题么?
作者:
木子江11
时间:
2011-1-4 22:21
对中断的硬件初始化编程不太理解,不知道使用外部中断,lm1881的行中断和场中断分别输到单片机接口的是什么变化信号,单片机的中端口是如何判别lm1881的中断信号的
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2