일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- xilinx
- git
- #CLCD
- #PuTTY
- Linux
- petalinux
- #textLCD
- Embedded linux
- sqlite
- #UART
- zynq
- ubutu
- Interrupt
- #ComportMaster
- #MCU
- SQLite Studio
- #Atmega128
- github
- #문자열
- avr
- ATMEGA128
- Database
- #시리얼통신
- ubuntu
- 인터럽트
- #채터링
- Today
- Total
목록MCU (11)
재잼재잼의 티스토리
각 장치끼리 통신하는 방법은 크게 2가지로 나뉜다. 직렬통신과 병렬통신. 직렬통신은 여러 비트의 데이터(n비트)를 전송할 때, 하나의 핀을 사용해서 한비트씩 전송하는방법이다. 병렬통신은 여러 비트의 데이터(n비트)를 전송할 때, 여러개의 핀을 사용해서 한번에 여러비트씩 전송하는 방법을 말한다. 01100011 이라는 비트 배열을 전송한다고 했을 때, 8개의 핀을 사용해서 한번에 보내는 방법이 병렬, 하나의 핀으로 한비트씩 보내는 것을 직렬통신이라 할 수 있다. ATmega128의 경우에는 56개의 디지털핀이 존재하기 때문에 최대 56핀을 사용한 병렬통신을 사용할 수 있다. 병렬통신은 주로 LCD와 데이터 교환을 할 때, 4개 ~ 8개의 디지털핀을 사용할 수 있다. ----------------------..
환경구성도 끝냈고, LED 점멸도 테스트 해봤다. 출력을 했으니 입력을 해야하는데, 푸쉬버튼으로 해보려 한다. 예전부터 푸쉬버튼 사용할 때, 버튼 채터링 때문에 많이 해맸었는데, 이걸 또 하려하니 여전히 헷갈린다. 그래서 정리하면서 진행하려 한다. --------------------------------- 채터링은 버튼의 물리적 특성 때문에 사용자가 버튼을 눌렀을 때 값이 잠시 스프링처럼 튀었다가 안정된 값으로 들어가게 된다. 이때, 스프링처럼 값이 튈 때도 MCU는 입력으로 받아들이기 때문에, 사용자가 원하는 결과를 얻지 못하는 경우가 발생한다. ex) 버튼을 누를때마다 LED 순차점등을 수행할 때, 한번에 여러개의 LED가 켜지는 것과 같은..(버튼입력을 여러번 한 것과 같은) 이런 채터링을 제거(..
서랍 구석에 쳐박혀있던 ATmega128 개발보드를 꺼냈다. 한참 할 때는 바로바로 했었는데, 지금와서 하려니 뭐가뭔지 모르겠다. 그래서 "마이크로 컨트롤러 프로그래밍" 책을 보고 기억을 되살려 보려 한다. ------------ C나 Java 같은 프로그래밍 언어에 "Hello world" 가 있듯이, MCU프로그램에는 "LED 1초에 한번 점멸"과 같은 코드가 있다. 일단 개발 환경을 구축한다음 다양한 주변 장치들을 제어해보도록 하자. 이전까지는 avr Studio 4.19 버전을 사용해서 코딩을 했는데, 이제는 Atmel Studio 7을 사용해서 하도록 하자. 지금부터 사용할 개발보드는 AT128A-70B라는 M.A.I 에서 판매하는 개발보드. 사용할 ISP는 뉴티씨에서 판매하는 USB-ISP다...