본문 바로가기

Embedded 실습16

계산기 프로젝트 보호되어 있는 글 입니다. 2013. 8. 23.
ATmega2560으로 LED 깜빡이기 ATmega 시리즈는 ATMEL사에서 직접 설계한 AVR 프로세서를 사용하는 MCU로8비트 구조로 설계되어있다. ARM과 같이 롬라이터 없이 프로그램을 삽입할 수 있는 In-System Programmable Flash를 장착하고 있으며,ARM의 SAM-BA보다 훨씬 사용하기 편리하다. GNU에서 만든 GCC컴파일러인 WinAVR을 설치하고 그 Makefile만 가져다 코딩하면 될 정도로 사용이 무척 간편하다. 우선 WinAVR의 Makefile을 살펴보자. 43 # MCU name44 MCU = atmega2560 47 # Processor frequency.48 # This will define a symbol, F_CPU, in all source code files equal to the 49 #.. 2013. 5. 29.
구조체를 이용한 메모리 접근 지금껏 ARM에 코딩할 때 define문으로 레지스터를 각각 지정하여 사용하는 방법을 썼는데, ATMEL사에서 제공하는 헤더파일을 이용하면각기 따로 define문을 이용하여 지정할 필요 없이바로 코드를 작성할 수 있다. 이는 메모리 주소와 구조체, 포인터의 특성을 이용하여 사용하는 것이다. #include #define BASE ((struct SMART *)0x12FF60) struct SMART { int A; int B; int C; int D; }; int main() { int array[4] = {0x11, 0x22, 0x33, 0x44}; int *ip = array; struct SMART *ssp; printf(" int[] : %X\t%X\t%X\t%X\n", array[0], arra.. 2013. 5. 22.
ADC(Analog-to-Digital Converter) 사용하기 - 4 ADC에 전원공급을 했으니 이제 타이밍 다이어그램을 참고하여 ADC를 이용하여 LCD에 출력할 수 있는 ADC_run()함수를 구현해보자. 위의 다이어그램은 특정 레지스터에 특정 값이 들어왔을 때 ADC_SR레지스터의 EOCx비트와 DRDY비트가 변화하는 것을 보여준다.좌측과 우측의 ①, ②, ③은 모두 동일하나 ④에서 다른 모습을 보여준다. ① ADC_CR의 START 비트를 1로 설정하면 ADC에서 값을 읽어오는 ② Conversion Time이 시작된다.Conversion Time이 완료되면 ③에서 처럼 ADC_SR레지스터의 EOCx와 DRDY비트가 HIGH로 설정되는데④ ADC_CDRx 레지스터를 읽을 경우 EOCx의 값은 LOW로 내려가지만 DRDY의 값은 변화가 없다.하지만 ④에서 처럼 ADC.. 2013. 5. 1.