728x90
728x90
안녕하세요 스포크하우스입니다.
1. ADC init
2.ADC read
3.disableADC
이렇게 구현되어있습니다.
1. ADC init
void ADC0_init(void)
{
ADC0.CTRLC = ADC_PRESC_DIV4_gc /* CLK_PER divided by 4 */
| ADC_REFSEL_INTREF_gc; /* Internal reference */
ADC0.CTRLA = ADC_ENABLE_bm /* ADC Enable: enabled */
| ADC_RESSEL_10BIT_gc; /* 10-bit mode */
/* Select ADC channel */
ADC0.MUXPOS = ADC_MUXPOS_AIN2_gc;
}
설정 코드입니다. 10비트로 측정하는 방식입니다.
2.ADC read
uint16_t ADC0_read(void)
{
ADC0.COMMAND = ADC_STCONV_bm;
/* Wait until ADC conversion done */
while ( !(ADC0.INTFLAGS & ADC_RESRDY_bm) )
{
;
}
/* Clear the interrupt flag by writing 1: */
ADC0.INTFLAGS = ADC_RESRDY_bm;
return ADC0.RES;
}
ADC conversion 이 완료될때가지 대기합니다.
여러가지 기능이 빠르게 동작해야하는 제품에서는 다른 방식을 채택해야합니다.
3.disableADC
void disableADC(void)
{
ADC0.CTRLA &= ~ADC_ENABLE_bm;
}
저는 이렇게 사용하고 disableADC 은 사용하지 않고 슬립모드로 들어가게 했는데 저전력 동작은 정상적으로 확인됩니다.
슬립모드를 Power down이 아닌 standby 까지만 구현되는 제품은 disableADC 해주시면 될듯합니다.
void enableADC(void)
{
ADC0.CTRLA = ADC_ENABLE_bm;
}
그런다음에 사용하기 전에 enable해주면 되겠지요...
그럼 오늘도 대단히 수고하세요
감사합니다.
728x90
728x90
'Microchip' 카테고리의 다른 글
Attiny202 - Sleep mode 슬립모드 정리 (0) | 2024.12.18 |
---|---|
Attiny202 - 저전력 클럭 설정 32K (0) | 2024.12.04 |
MPLab IDE에서 터치 데이터 확인하기 - PIC18F05Q41 (1) | 2024.10.02 |
make: *** [nbproject/Makefile-impl.mk:39: .build-impl] Error 2 오류 해결법 (0) | 2024.08.06 |
Attiny202 - ADC 데이터 확인하기 (0) | 2024.07.16 |
댓글