#include "include.h" uint8 TIME0flag_5ms ; uint8 TIME0flag_10ms ; uint8 TIME0flag_20ms ; uint8 TIME0flag_50ms ; uint8 TIME0flag_80ms ; uint8 TIME0flag_100ms ; uint8 TIME1flag_20ms ; //摄像头 uint8 DMA_Over_Flg ; //采集完成标志位 uint8 LinADCout=0 ; uint8 ADdata[DATALINE][DATACOUNT] ={ 0 } ; //黑线AD数组存储 uint8 *finger,*finger1; uint16 i=0,j=0; uint8 COMS_FAV ; uint8 checkflg = 0 ; void main(void){ DisableInterrupts; //禁止总中断 pit_init_ms(PIT0,5); set_irq_priority((INT_PIT0+INC_IRQ),8); //设置中断优先级 setIRQadrr(INT_PIT0,PIT0_IRQHandler) ; //复制中断地址 uart_init(UART0,115200); //串口初始化 gpio_init(PTA17,GPO,1) ; gpio_init(PTA16,GPO,1) ; OLED_Init(); //OLED初始化 COMS_INC(); //摄像头初始化 //场中断为14,行中断为13,数据为PTE0-PTE7,DMA触发为PTD12,采集数据的阵列为160 X100, //在使用程序的时候需要查看 calculation.h 中的具体定义 /* #define DATALINE 100 //采样行数 #define DATACOUNT 140 //采样点数 */ IICWriteGpio_inint() ; /***************************************************** while循环部分用于配置IIC数据 将这部分处于屏蔽状态,摄像头转接板开关拨到MM即默认状态 *****************************************************/ // while(checkflg != 1 ) // { // checkflg = LandzoIICEEROM_INIT() ; // BFdelay_1us(100); // 延时100us // // uart_putchar(UART0,0xff); // } EnableInterrupts ; while(1){ if(DMA_Over_Flg == 1) { DMA_Over_Flg = 0 ; /*********************** 关闭场中断,行中断,发数据,因为发送数据占用的时间太长,故刷频慢 ***********************/ gpio_Interrupt_init(PTD15, GPI_UP,DISABLED) ; //场中断 gpio_Interrupt_init(PTD13, GPI_DOWN, DISABLED) ; //行中断 COMS_FAV = 0xff ; //查找最小值作为二值化阈值 uart_putchar(UART0,0xff); //uart_putchar(UART0,0xfb); //uart_putchar(UART0,0xbb); for(i=0;i ADdata[i][j]) COMS_FAV = ADdata[i][j] ; /******* 串口发数 *******/ if(ADdata[i][j]==0xff)ADdata[i][j]--; uart_putchar(UART0,ADdata[i][j]); } } COMS_FAV += 0x2a ; //偏移16个阈值 if(COMS_FAV > 0xa0 ) COMS_FAV = 0xa0 ; else if(COMS_FAV < 0x60 ) COMS_FAV = 0x60 ; OledPrint(DATACOUNT,DATALINE,COMS_FAV,(uint8 *)&ADdata[0]); /*********************** 等待数据接收完,打开场中断,在场中断中打开行中断 ***********************/ gpio_Interrupt_init(PTD15, GPI_UP,FALLING) ; //场中断 } if(TIME0flag_80ms){ TIME0flag_80ms = 0 ; // OledPrint(128,1,100,(uint8 *)&let[0]); PTA17_OUT = ~PTA17_OUT ; PTA16_OUT = ~PTA16_OUT ; } } }