[AVR] Atmega GPIO 제어하기 Atmega8을 사용하여 GPIO 제어하는 방법에 대해 포스팅을 해 보겠다. 1. 초기화 일반적으로 초기화 구문을 따로 함수로 만들어 사용한다. 예를 들면 Init_MCU() 와 같이 함수를 만들어서 처음 초기화 하는 부분을 넣는다. 포트의 초기화는 특수 기능을 하는 경우와 일반 GPIO로 사용하는 경우인데 특수한 기능을 하는 경우는 그에 맞게 출력 특성을 정해줘야 하고 GPIO는 입력인지 출력인지를 설정해 주어야 한다. 이 후 일반적으로는 출력의 경우는 초기값을 넣어주고 입력의 경우는 1로 셋팅해 주는데 생략이 가능하기도 하지만 확실히 하려면 초기치를 넣어주는게 좋다. 2. sbit 설정 사용을 원활히 하기 위해서는 각 핀에 대한 연결 이름을 정의하고 사용하는게 좋다. 몇 줄 안되는 구문일 경운 그냥 .. 프로그램 이야기/AVR 3년 전
[AVR] AVR GPIO 컨트롤 (sbit) 내가 주로 사용했던 MCU가 Siliconlab사의 C8051인데 MCU 치고는 성능은 좋으나 가격이 좀 되어서 민수 분야에서는 사용이 좀 어려운 소자였다. 그러나 내 기준에서는 컴파일러 사용이 매우 용이하고 IDE가 구형으로 업데이트가 안되고 있긴 하지만(8bit 기준) 여튼 편리했었다. 그러나 뭐 이게 요즘 자재 난과 주변에 사용하는 사람이 적은 관계로 주로 Atmega나 PIC 그리고 요즘 대세인 ARM인 STM32를 사용하고 그러다보니 8051에서 사용하는 기능이 아쉬운 것이 몇개가 있다. 그중 대표적인 것이 sbit 기능....물론 이건 PIC에도 있긴 하지만 AVR에는 없다. 못찾은 것인지 모르겠지만 비슷하게 define해서 사용하는 건 봤어도 구현이 똑같이 되지 않는다. 여튼 그런 이유로 s.. 프로그램 이야기/AVR 3년 전
[AVR] Microchip Studio에서 Fuse bit 프로그램 오랜만에 Atmega8을 사용하여 프로그램을 하였다. 이게 자주가 아니고 가끔 MCU를 다른 것을 사용할 때가 있기 때문에 간만에 하려니 뭐가 뭐였는지 햇갈린다. 특히 Atmega나 PIC 같은 경우는 Fuse라는 개념이 있기 때문에 더욱이 그렇다. 퓨즈는 다른 프로그램에서는 IDE에서 따로 GUI로 초기화 한다거나 (STMCubeIDE) 또는 코드서 정의하는 경우가 있는데 Atmega나 PIC도 IDE에서 Memory에 다운로드 전 혹은 후에 정의해줘야 한다. 그런데 이게 프로그래머 입장에서는 여간 귀찮은 일이 아니다. 하드웨어와 연관이 있는 설정인지라 뭔가 이상하게 귀찮다. 뭐 귀찮은거야 한번 Fuse 설정을 해 놓으면 비휘발성이라 Chip 내에 기억이 되긴 하지만 이게 오랜만에 프로젝트를 다시 하게.. 프로그램 이야기/AVR 3년 전
[AVR] AVR Studio(Microchip Studio) ISP 프로그램 다운로드 예전에 AVR 사용할 때 난 코드비전을 사용했었다. 그러나 요즘 굳이 유료 프로그램을 사용하거나 할 필요없이 제조사에서 IDE나 컴파일러를 대부분 무상으로 제공하고 있기 때문에 범용적으로는 그 프로그램을 사용하는 것이 좋다. 물론 각 제조사마다 IDE나 컴파일러를 다 다르게 제공하므로 사용법을 각 제조사의 프로그램 마다 익혀야 하는 단점은 있지만 뭐 어쩔 수 있나..... 여튼 AVR은 AVR Studio로 나오다가 Microchip에서 인수 후 Microchip Studio로 바뀌었는데 크게 변한 점은 없다. 그래도 요즘 최신 버전들이 예전에 비하면 편해진건지는 구버전을 사용했었던 나한테는 좀 헷갈릴 때가 있어서 정리를 좀 해 놓자는 취지에서 포스팅을 한다. 일단 AVR 다운로드는 따로 다운로드 프로그.. 프로그램 이야기/AVR 3년 전