목록ATMEGA128 (9)
Brise
이 예제에서는 가변저항의 전압값을 읽어온 후 전압값에 따라 서보모터를 움직인다. 가변저항은 이전 adc예제를 이용하여 전압값을 읽어오며, 읽어오는 전압값은 0~5V, 값으로는 0~1023사이의 값으로 읽어들여진다. RC 서보모터의 경우 PWM 신호를 받아 동작한다. 서보모터의 한 주기는 20ms로 1초당 50번 반복되어야 하며핀의 값이 HIGH인 시간이 0.5ms일 때 서보모터의 각도가 0도가 되며핀의 값이 HIGH인 시간이 2.5ms일 때 서보모터의 각도가 180도가 된다. 아트메가128에서 서보모터를 제어하기 위해서 20ms주기의 PWM을 발생시킨다. 아트메가128에는 타이머 1,3(8비트 타이머) 타이머 2,4(16비트 타이머)가 있으며 8비트 타이머로는 충분한 정밀도를 확보하기 어렵기 때문에 16..
12345678910111213141516171819202122232425262728#define F_CPU 16000000UL #include #include //#include #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
아트메가를 인공호흡하기 위해서는 1mhz의 클럭이 필요하다 확실하게는 1mhz의 오실레이터를 구하거나, PWM을 이용하여 분주를 잘 맞춰야 겠지만, 칩에 익숙하지 않아 편의상 GPIO를 이용하여 1mhz를 만들어 보았다. 아두이노의 제공 API인 digitalWrite를 쓰면 속도가 나오지 않아(1M번 스위칭을 수행하는데 12초..) avr의 레지스터를 직접 만져 만들었다. 아두이노 Pro Micro의 회로도는 다음과 같다. D3핀이 PD0에 물려 있으므로 PORTD 레지스터를 바꾸어 코드를 짠다. 코드는 다음과 같다. 123456789101112131415161718192021222324252627282930313233343536unsigned long int i = 1000000;unsigned in..
-- -- AVR ISP(STK500)을 아트메가128에 사용하려면 avr studio 4를 필연적으로 쓸 수 밖에 없다. 그런데 컴퓨터를 다시 까니 안된다 ㅡㅡ... 왜지 하면서 자료를 찾는중... http://www.avrfreaks.net/forum/avr-studio-4-will-not-install-win7-64-bithttp://www.avrfreaks.net/forum/studio-418-install-issues?name=PNphpBB2&file=viewtopic&t=86501http://www.avrfreaks.net/forum/avr-studio-418-release-candidate-3?name=PNphpBB2&file=viewtopic&t=85782 제시한 해결책들은 여러가지가 있는..
-- -- 12345678910111213141516171819////Define Macro #define F_CPU 16000000UL#define gbi(PORTX,bitX) ((PORTX & (1bitX)#define tbi(PORTX,bitX) PORTX ^= (1
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..
일단 아트메가128의 종류를 알아보자 ATMEGA128 : 4.5V ~5.5V의 구동전압을 가짐ATMEGA128L : 2.7V ~ 5.5V에서 구동 가능ATMEGA128A : 2.7V ~ 5.5V에서 구동 가능(차이점 : http://www.atmel.com/Images/doc8166.pdf)더 낮은 구동전압을 가짐 결국, 아트메가(요즘 것이라면)는 2.7V에서 5.5V까지 넓은 범위에서 구동이 가능하다. 하지만 그렇게 사용하기 위해서는 제한이 몇가지 있다. 1. 클럭을 낮춰야 한다. 다른 분의 블로그(http://blog.naver.com/s_paper/220119097404) 를 참조하면 알겠지만, 원래 아트메가는 기본적으로 최대 8MHz 를 낼 수 있다. 때문에 모듈로 구매했을 때 최고속도를 내기 ..
이 포스트에서는 AVR-ISP를 이용하여 아트메가128의 개발환경을 설치해보겠다. 아트메가와 AVR-ISP는 뉴티씨에서 구매하였다.ATMEGA128 : http://www.newtc.co.kr/dpshop/shop/item.php?it_id=1314599835USB-ISP : http://www.newtc.co.kr/dpshop/shop/item.php?it_id=1361261769 핀맵 배치는 다음과 같이 되어있다. 아트메가를 사용하기 위해 Avr Studio 와 WinAVR을 설치한다. 아래 주소를 클릭하여 다운로드 한다. AVR STUDIO : http://www.atmel.com/Images/AvrStudio4Setup.exeWINAVR : http://sourceforge.net/projects..