이번 글에서는 디지털 시계 만들기 프로젝트의 핵심이라고 할 수 있는 타이머 설정에 대해서 설명하도록 하겠다.ATtiny85의 Timer/Counter0을 이용하여 일정한 시간 간격으로 타이머를 동작 시키도록 할 것이다.입문 과정에서 설명하였던 타이머/카운터 - PWM(CTC Mode)을 참고하여 원하는 시간에 인터럽트가 발생되도록 설정해준다. 하드웨어 타이머를 사용하면 CPU 동작과 무관하게 일정한 시간 간격으로 이벤트를 제공하므로 비교적 정확한 시계로 동작될 수 있게된다.enum timer_mode { NORMAL, PHASE, CTC, FAST }; enum timer_prescaler { DIV_NO, DIV_0, DIV_8, DIV_64, DIV_256, DIV_1024, EXT_FALLING, ..
이번 글에서는 TM1637을 제어하여 4자리 숫자를 표시해 보도록 하겠다. 이전 글에서 간단하게 언급하였지만 MCU와 TM1637간의 연결은 CLK, DIO 이렇게 2개의 시그널을 이용한다. 동작 원리는 I2C와 비슷하다는것도 앞에서 설명하였다.TM1637 datasheet에 설명되어 있는 방법중 "Write SRAM data in a fixed address mode"라는 동작을 이용하여 숫자를 표시하게 된다.CLK, DIO가 high 상태에서 DIO가 low가 되면 start 된다는 것을 의미한다. CLK 신호가 low에서 high 상태로 변경되는 시점의 DIO 값이 TM1637로 전달된다. 데이터가 나가는 순서는 LSB부터 나가도록 되어있는데 datasheet에는 이 부분이 정확히 설명되어 있지 않..
이번 프로젝트는 ATtiny85를 사용하여 아주 간단한 디지털 시계를 만들어 보는 것이다.ATtiny85는 위의 그림에서 보는것처럼 외부로 나오는 핀이 모두 8개인 아주 작은 MCU이다.ATtiny85의 핀 구성은 위의 그림과 같다. 이번 프로젝트에서는 VCC, GND, /RESET 핀을 제외한 5개의 핀 모두를 사용하도록 하겠다.이번에 만들어 보는것이 디지털 시계이므로 시간을 숫자로 표시해 주기위하여 7-세그먼트 디스플레이 모듈을 사용하겠지만, MCU의 I/O 핀을 직접 7세그먼트에 연결하는 것이 아니고 TM1637 칩이 들어있는 4핀짜리 디스플레이 모듈을 이용할 것이다. 위의 그림을 자세히 보면 TM1637칩이 실장되어 있고 CLK, DIO, GND, 5V 이렇게 4개의 핀이 연결될 수 있다는 것을 ..