반응형
Notice
Recent Posts
Recent Comments
Link
Brise
[atmega128] adc 예제 본문
반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> //#include <avr/delay.h> #include "nb_adc.h" void nb_sleep_ms(uint16_t ms){ while(ms-- != 0) _delay_ms(1); } int main(){ DDRA = 0xFF; PORTA = 0xFF; adc_init(); int16_t adc_value = 0; while(1){ for(int i=0; i<4 ; i++){ adc_value = adc_read(); PORTA = (1 << i); nb_sleep_ms(adc_value); } } return 0; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #ifndef NB_ADC_H #define NB_ADC_H #include <avr/io.h> #include <avr/interrupt.h> #include <stdio.h> #include <stdint.h> void adc_init(); uint16_t adc_read(); #endif | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include "nb_adc.h" void adc_init(){ ADMUX = (0 << MUX4) | (0 << MUX3) | (0 << MUX2) | (0 << MUX1) | (0 << MUX0); // 단일전압입력방식 ADC0pin ADMUX = (0 << REFS1) |(0 << REFS0); // AVCC --> 5V ADCSRA |= (0 << ADFR); // ADC freerun disable ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // select adc clock scale ADCSRA |= (1 << ADEN) ; // enable adc } uint16_t adc_read(){ uint16_t usResult = 0; ADCSRA |= (1 << ADSC); while(!(ADCSRA & (1<<ADIF))); usResult = ADC; return usResult; } | cs |
반응형
'MCU' 카테고리의 다른 글
[STM32CubeMX] STM32F429-disc0 엔코더값 입력받기(quadrature encoder pulse) -1 (0) | 2017.04.28 |
---|---|
[STM32CubeMX] STM32F429-DISC0 LCD 출력하기 (0) | 2017.04.27 |
[atmega128] RC servo 예제 (0) | 2017.04.22 |
아트메가 인공호흡용 아두이노 소스 (0) | 2017.04.15 |
STM32F429-DISCO TrueStudio 프로젝트 기본 템플릿 (0) | 2016.07.11 |
아두이노로 펠티어 항온 챔버(냉장고) 자작하기 (0) | 2016.07.09 |
아두이노에서 NOKIA 5110 LCD 사용하기 (0) | 2016.06.13 |
Comments