void Scope(void) { //scope_buf[0] = angle_raw; //scope_buf[1] = gyro_raw; //scope_buf[2] = turn_raw; int ad_data[5]; #if AD ad_data[0] = ADC_QuickReadValue(AD0); ad_data[1] = ADC_QuickReadValue(AD1); ad_data[2] = ADC_QuickReadValue(AD2); ad_data[3] = ADC_QuickReadValue(AD3); ad_data[4] = ADC_QuickReadValue(AD4); scope_buf[0] = ad_data[0]; scope_buf[1] = ad_data[1]; scope_buf[2] = ad_data[2]; scope_buf[3] = ad_data[3]; scope_buf[4] = ad_data[4]; #else scope_buf[3] = angle; scope_buf[4] = gyro; scope_buf[5] = angle_balance; scope_buf[6] = balance_pwm; scope_buf[8] = ChlValue[0]; scope_buf[9] = ChlValue[1]; #endif }
void CCD_gather(void) { uint8_t i; //采集上次曝光的得到的图像 CCD_CLK(0); __nop(); CCD_SI(1); //开始SI __nop(); CCD_CLK(1); __nop(); CCD_SI(0); __nop(); for(i=0;i<128;i++) //采集1-128个像素点 { CCD_CLK(0); __nop(); CCD_original_data[i+2] = ADC_QuickReadValue(ADC0_SE8_PB0); CCD_CLK(1); __nop(); } __nop(); //发送第129个CLK CCD_CLK(1); __nop(); CCD_CLK(0); __nop(); DelayMs(30); //曝光时间 }
static int DoADC(int argc, char * const argv[]) { int i; int result; /* decode MAP */ uint32_t map = BOARD_ADC_MAP; QuickInit_Type type; QuickInitDecode(map, &type); printf("ADC%d CH%d:\r\n", type.ip_instance, type.channel); printf("PIN: P%c%d\r\n", type.io_instance+'A', type.io_offset); ADC_QuickInit(BOARD_ADC_MAP, kADC_SingleDiff12or13); for(i=0;i<20;i++) { result = ADC_QuickReadValue(BOARD_ADC_MAP); printf("ADC:%d\r\n", result); DelayMs(300); } return 0; }