Project/Balancing Robot2014. 7. 23. 14:53

void Init_ADC()
{


// AdcRegs.ADCTRL1.bit.RESET = 1 ;  // Adc module Reset
// asm(" RPT #12 || nop ") ;   // Reset는 3 ADC_CLK 지연이 발생한다.
          // 현재 ADC_CLK으로
 InitAdc();

 // ADC 설정
 AdcRegs.ADCTRL3.bit.ADCCLKPS = 15;     // ADCCLKPS = HSPCLK / 30 (ADCCLKPS = 2.5MHz)
 AdcRegs.ADCTRL1.bit.CPS = 1;   // ADCCLK = ADCCLKPS / 2 (ADC의 구동 클럭을 결정 : ADCCLK = 1.25MHz)
 AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;  // 시퀀스 직렬 모드
 AdcRegs.ADCTRL1.bit.ACQ_PS = 7 ;  // 샘플링 윈도우 size를 8 ADC_CLK 설정
// AdcRegs.ADCMAXCONV.all = 0x0002;       // ADC??개수 설정 : 모두 2개 ADC를 변환
 AdcRegs.ADCMAXCONV.all = 0x0004;
 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0;  // Murata [ Gyro ]
 AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 1; // SA1 [ Tilt ] 4
// AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 2; // Z [ Accelerometer ]
// AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 3; // Y [ Accelerometer ]
// AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 8; // X [ Accelerometer ]
// AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 5; // SCA10T [ Tilt ] 5

// AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 2;
 AdcRegs.ADCTRL1.bit.CONT_RUN = 1;    // Cont. conv. mode
 AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1;  // 시퀀스 시작


}

'Project > Balancing Robot' 카테고리의 다른 글

엔코더와 풀업, 전압분배  (0) 2014.07.27
실습코드 해석. 순서  (0) 2014.07.23
[초기화5] Init_SPI()  (0) 2014.07.23
[초기화4] Init_SCIA(), Init_SCIB()  (0) 2014.07.23
[초기화3] Init_EVA(), Init_EVB()  (0) 2014.07.23
Posted by 십자성군