|
2011년 07월 27일
가끔씩 까먹을 때 상기하는 용도로... 네이버 mudefack 님의 글입니다.
1의 보수 이진법은 각 자리의 수가 0 이나 1로 표현 됩니다. 2를 곱할때마다 한자리수씩 증가하구요 이진법은 컴퓨터에서 많이 사용하는데요 1의보수와 2의 보수에 대해서만 설명하겠습니다. 간단하게 1의 보수는 모든 자리의 0과 1을 각각 1과 0으로 바꿔주면 됩니다. 0-->1 1-->0 으로 말이죠. 2의 보수는 1의 보수를 취하고 나서 맨 오른쪽의 수에 1을 더해주면 나옵니다. 예 ) 0001 0101 .>>> 1110 1010 ( 1의보수) 1110 1010 + 0000 0001 = 1110 1011 (2의 보수)
덧셈 덧셈은 우리가 익숙한 10진수처럼 덧셈을 합니다. 이진수에서는 가장 큰 수가 1이므로 이것을 넘어가면 자리올림이 발생합니다. 자리올림수는 자리가 하나 늘어남과 동시에 그자리에 1을 써주면 되겠죠?
0 + 0 = 0 0+ 1 = 1 1+ 0 = 1 1+ 1 = 10 ( 1이 자리올림수 입니다. 자리가 하나 늘어났죠? )
뺄셈 피감수 - 감수 1) 1의 보수 이용하는 방법 1010 - 0101 감수를 1의 보수를 취합니다. 0101 -->1010 보수를 취한 상태에서 피감수와 덧셈을 합니다. 1010 + 1010 = 1 0100 ( 올림수 1이 발생합니다.) 올림수가 발생하면 최하위의 수에 1을 더해줍니다. (1010에서 마지막 0자리에 1을 더해줘요) 0100 + 0001 = 0101 올림수가 발생하지 않으면 더한 결과를 1의 보수를 취한다음에 부호를 (-)로 바꿔 줍니다.
2) 2의 보수 이용하는 방법 1010- 0101 감수를 2의 보수를 취합니다. 0101 --> 1010 + 0001 = 1011 보수를 취한 상태에서 피감수와 덧셈을 합니다. 1010 + 1011 = 10101 ( 올림수 1 이 발생합니다.) 올림수가 발생하면 이를 무시합니다. 1 0101 --> 0101 올림수가 발생하지 않으면 더한 결과를 2의 보수를 취한 다음에 부호를 (-)로 바꿔 줍니다. [출처] 1의 보수와 2의 보수|작성자 쉐인 2011년 07월 25일
2011년 07월 25일
* What is AVR? : AVR이란 무엇인가?
* AVR이란 무엇인가? AVR 은 Alf(Bogen) Vergard(Wollen) Risc 의 약자로서 ATMEL사에서 제작된 RISC 구조의 MCU 이다. 가격적인 측면에서는 약간 고가라는 단점이 있으나 1 cycle에 1 instruction이 수행되는 고속의 MCU라는 점, ISP (In System Programming)이라는 기능을 통해 매우 저렴하게 개발환경을 구축할수 있다는 점, RISC 타입이고, Harvard Architecture의 특징으로 C언어에서 우수한 성능을 발휘한다는 점, 막강한 각종 컴파일러가 무료로 제공된다는 점, 이밖에 ADC, PWM, SPI 등등의 고기능을 손쉽게 구현할 수 있다는 장점이 있다. 또한 AVR의 강점으로 꼽을 수 있는 것은 제작사가 컴파일러 WAVRASM 과 상당히 강력한 디버거인 AVR Studio를 제공한다는 것이다.
* AVR에는 수많은 종류가 있다 AVR은 ATMEL (http://www.atmel.com)이라는 곳에서 제작되었으며, 위에서 언급한 데이터 쉬트는 해당 사이트에서 구할수 있다. AVR도 여러 종류 (보통 Family라고 한다)가 생산되는데 크게 3종류로 ATtiny 계열, AT90s 계열, ATmega 계열이 있으며, 각각의 계열에도 여러 종류의 AVR을 판매하고 있다. 해당 사이트에 접속해서 여러 AVR을 살펴보면 수많은 AVR이 있어서 어떤 것을 골라야 하나 망설이게 되지만, AVR의 핵심적인 부분은 모두 동일하며 어떤 기능을 더 많이 보유하고 있는가, 램 및 롬의 용량은 어떻게 되는가에 대한 소소한 차이일 뿐이다. AVR 패밀리에 대해서는 추후에 언급할 예정이니 일단 "많은 종류가 있구나, 내부 코어는 동일하구나"라는 점만 알면 되겠다.
* AVR에 대해 배우고자 한다면 데이터 쉬트를 반드시 읽어보아라 이보다 더욱 세부적인 내용은 데이터 쉬트의 Feature 부분을 참조하면 상세하게 설명되어 있을것이다. 그러나, 처음으로 AVR을 접하는 이가 이러한 모든 내용을 한번에 이해한다는 것은 쉽지 않은 일이다. 하지만, AVR에 대해 공부하고자 한다면, Feature에서 말하는 "우리가 만든 AVR 은 이러한 기능을 갖고 있습니다."라는 내용 정도는 읽어보아야 하지 않을까.
* AVR이 어떤 경우에서든 최상의 MCU인것은 아니다. 아울러 위에서 언급한 내용으로 보면 "다른 MCU보다 AVR이 제일 우수하구나"라고 오해할 여지도 있지만, 기능과 성능이 제일 우수하다고 제일 우수한 CPU가 되는 것이 아닌것처럼 AVR이이 어떠한 경우에든 최상의 선택이라고 말할수는 없다. 이에 대한 논의는 추후에 다시 하기로 하기로 하고 일단은 AVR도 이런 저런 기능을 갖고 있다는 점에 주목하기 바란다.
* AVR에 대해 공부하고자 한다면, MCU에 대한 이해가 필수적이다. 일단 AVR에 대해서 공부하고자 하는 이는 CPU/MPU/MCU에 대한 어느정도의 개념을 익히고 있어야 한다. 왜냐하면 MCU는 MPU에 그 근본을 두고 있으며 MPU는 그 근본을 CPU에 두고 있기 때문이다. CPU 혹은 MPU에 대해 개념이 부족한 상태에서 C언어로만 제작하다보면 머지 않아 한계에 부딪히게 된다. 왜냐하면 일반 데스크탑 컴퓨터에서도 C를 사용하고, AVR도 C를 사용하지만 그 둘의 사용법이 매우 다르기 때문이다.
예를 들어 MCU에서는 레지스터를 사용하는 방법이 매우 일반적이나 데스크탑 컴퓨터에서는 레지스터를 설정하는 방법이 어쩌다 한번 있을까 말까한 일이기 때문이다. 더구나 근래의 OOP 설계와 같이 설계하는 방법에 있어서는 레지스터 설정이 거의 전무하다고 해도 무방할 것이다. 따라서, MCU가 어떻게 운용되는지에 대한 이해 없이 "왜 MCU에서는 프로그램을 이렇게 짜는가"와 같은 질문은 C언어에 대한 질문이 아닌 바로 MCU 구조를 이해하고 있지 못하기 때문이다. 따라서, MCU에서 프로그램을 능숙하게 다루기 위해서는 C언어의 문법에 대한 이해는 기본적이고, MCU 구조 자체도 이해를 잘 하고 있어야 한다.
* MCU를 숙지하고 난 이후에도 주변 회로에 대한 공부는 매번 다시 해야 한다. 또한, AVR 및 C언어에 대해 능숙하게 다룰수 있다 하더라도, 추후 AVR을 본인이 원하는 프로젝트나 회사의 프로젝트에 적용하고자 한다면, 전기/전자 기초 및 디지털 설계에 대한 기본적인 이해가 필수이다. 왜냐하면 CPU 만으로 할수 있는 일이 별로 없듯이 주변회로 제작이 필수적이기 때문이다. 예를 들어 센서를 다루고 싶다거나, 모터를 구동하고 싶다면 이는 원래 AVR과 전혀 관계가 없는 것이다. 따라서 스텝 모터를 다루고 싶다면 스텝 모터를 배워야 하고, 적외선 센서를 다루고 싶다면 적외선 센서를 알아야 한다. 그러나 많은 이들이 AVR을 잘 알게되면 모터도 당연히 잘 다룰수 있다고 생각하고 있으니 참으로 아이러니한 일이 아닐수 없다.
* AVR을 한번 구경하고 마치도록 하겠다. 끝으로 AVR이 어떻게 생긴 놈인지 구경한번 해보자. 아래는 AVR 중에서 ATtiny 계열 중에서 ATtiny2313이라는 놈으로 (뒤에 숫자에 따라서 여러 종류가 있다.) 20 핀으로 DIP 형태로 제작되어졌다. 간혹 모델명은 완전히 동일한데 모양이 다른 놈도 있다. 이는 모양이 다를뿐 똑같은 칩이라 생각해도 무방하다. 그러나 간혹 보면 ATTINY2313-20PI ATTINY2313-10PI이 있고, ATTINY2313V-10PI, ATTINY2313-10PI라고 몇글자가 다른 경우가 있는데, 이는 내부 코어는 완전히 동일하다, 클럭의 차이라던가, 전압의 차이가 존재하는 것이다.
AVR 시작한지 저도 이제 5-6개월가량 되어가네요 ㅎㅎ 지금이되어도 이론적인 부분에 대해서 습득하기란 정말 힘든 것이 AVR입니다 한가지 분야가 아닌 디지털공학, 회로이론,C는 기본적이되어야 어느정도 이해해가는거 같구요 국내에 교육용 킷트로 몇종류에 킷들이 있는데 그중 DK-128이란 킷으로 처음 접하셔서 실습위주로 해보신다면 많은 도움이 될것같네요~~
|
ABOUT
카테고리
전체
잡답 전산 철학 영어 내면과의 대화 기술고시 프랑스(파리) 네덜란드(덴하그) 이태리(로마) 이스라엘(텔아비브) 경제&증권 절약노하우 제테크기사모음 세이노님 칼럼 소설습작 매매일지 [증권]고수에게 듣는다 AVR 미분류 이전블로그
2012년 03월
2011년 07월 2010년 09월 2009년 12월 2009년 07월 2009년 05월 2009년 01월 2008년 09월 2008년 08월 2008년 07월 2008년 06월 2008년 05월 2008년 01월 2007년 12월 2007년 11월 2007년 10월 2007년 09월 2007년 08월 2007년 06월 2007년 01월 2006년 12월 2006년 10월 2006년 09월 2006년 08월 2006년 04월 2006년 03월 2006년 02월 2006년 01월 2005년 12월 2005년 11월 2005년 10월 2005년 09월 2005년 07월 2005년 06월 2005년 05월 2004년 11월 2004년 10월 2004년 07월 2004년 05월 2004년 04월 2004년 01월 2003년 11월 이글루링크
최근 등록된 덧글
옳은 말이다.. 수급... 지금까지 난 ..
by 카르마 at 12/15 너무 어렵네요...이번 주마에 mcdona.. by 일곱씨앗 at 10/25 심한 삽질인군요..;; by Bardisch at 02/22 혹시 전세 찾고 계신 분들을 위해 알려 .. by 꿈구름 at 07/29 2008년 최신 공인중개사 시험정보+예.. by 2008공인중개사 at 07/03 2008년 최신 공인중개사 시험정보+예.. by 2008공인중개사 at 07/03 월요일 볼만하겠군... 과연 얼마나 빠.. by 카르마 at 06/07 모기지 대출 업체에 대한 S&P의 신용등.. by 카르마 at 06/06 어짜피 달러화가 약세라면 기름값은 오.. by 카르마 at 06/06 당일매매 - 빨간불만 보지 파란불은 거.. by 카르마 at 10/22 |