资源描述:
《ccdaddma程序参考》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1025766910QQliu_fanyiccd+ad+dma,已经成功出图像了。串口的那个函数我就不发了。不能直接下载到板子上,我就是挑有用的部分发上来了。函数太多,都发上来会混乱主程序:#include"common.h"//#include"HAL_ADC.h"#include"liu_adc.h"#include"uart.h"include"HAL_GPIO.h"#include"dma.h"//函数定义voidinit_pwm(void);voiddelay(void);//全局变暈uintl6dmarm=0;uint8video[21000];//[140][ROW];
2、//uintl6a[10000],*p=a,*q;voidmain(void)//初始化ADCDisablelnterrupts;LPLD_GPIOJnit(PORTA_BASE_PTR,5,0,0,0x9);LPLD_GPIO_Init(PORTE_BASE_PTR,26,0,0,0x9);UU_ADCJnit(ADCO_BASE_PTR,MODE一8,0);//使能中断enable_irq(91);//GPIOE向量号为107.IRQ#is107-16=91Enablelnterrupts;while(l){dma.h:#ifndef_DMA_H_#define_DMA_H_#i
3、nclude"common.h"#include"dma_channels.h"#defineROW160voiddmajnit();******************************************************************/*#endif/*_DMA_H_*/dma.c:#include"dma.h"externuint8video[21000];//video[140][ROW];voiddma_init(){SIM_SCGC6
4、=SIM_SCGC6_DMAMUX_MASK;//打开DMA多路复用器时钟SIM_SCGC7
5、=SIM_SCG
6、C7_DMA_MASK;//打开DMA模块时钟DMAMUX_CHCFG0=DMAMUX_CHCFG_SOURCE(40);//DMA通道0对应40号DMA请求,即ADC0DMA_TCD0_SADDR=(uint32_t)&(ADC_R_REG(ADCO_BASE_PTR,0));DMA_TCDO_SOFF=0;//每次传送源地址不变DMA_TCDO_CITER_ELINKNO=DMA_CITER_ELINKNO_CITER(ROW);//当前主循环次数,采集点数DMA_TCDO_BITER_EUNKNO=DMA_BITER_ELINKNO_BITER(ROW);//起始主循环次数,采
7、集点数DMA_TCDO_ATTR=DMA_ATTR_SSIZE(O)
8、DMA_ATTR_DSIZE(O);//源数据宽度8bit,目的数据宽度8bitDMA_TCDO_NBYTES_MLNO=DMA_NBYTES_MLNO_NBYTES(1);//每次读取一字节DMA_TCDO_SLAST=0;//主循环结束后源地址0回写tedDMATCDODLASTSGA=0;DMA_TCD0_DADDR=(uint32)video;//设置目的地址,video数组第一个元素DMA_TCDO_DOFF=1;//每次写目的地口1DMA_TCDO_CSR=DMA_CSR_DREQ_MASK;//DMA
9、通道0主循环结束后停止硬件请求DMA_TCDO_CSR
10、=DMA_CSRJNTMAJOR_MASK;//使能DMA0中断DMAMUX_CHCFGO
11、=DMAMUX_CHCFG_ENBL_MASK;//DMA通道0使能//DMA_TCDO_CSR
12、=DMA_CSR_START_MASK;liu_adc.c:#include"common.h"#include"liu_adc.h"tADC_ConfigAdcO_Config;tADC_ConfigAdcl_Config;uint8_tLIU_ADC_Init(ADC_MemMapPtradcmap,uint8_tmode,uint8_t
13、diff){//开启ADC模块时钟if(adcmap==ADCO_BASE_PTR){SIM.SCGC6
14、=(SIM_SCGC6_ADC0_MASK);//系统时钟门控制寄存器6,adc0标志位设为1}elsereturn0;"校准ADC_Cal(adcmap);//初始化ADC//sc2ADC_SC2_REG(adcmap)&=〜ADC_SC2_ADTRG_MASK;ADC_SC2_REG(adcmap)
15、=(ADTRG_SW
16、ACFE_DISABLED