AVR 임베디드 학습/개인 프로젝트 공부 3

ATmega128 디지털 시계 만들기 (3탄)

ATmega128을 활용한 디지털시계 구현 3탄이다. 1탄에서는 대략적인 설명, 2탄부터 코딩 구현 관련 글을 작성하고 있다! 3탄에서는 2탄 다음으로 코드 작성 관련해서 글 작성해 보겠다. timer.c타이머 0번으로 오버플로 인터럽트로 100us 마다 인터럽트가 발생하게 만들었다. 그리고 PORTA, PORTD에 값을 reset 하여 초기화를 진행했다. 그리고 switch case 문을 활용하여 4 fnd, 2 fnd에 숫자 표현을 했는데 case0~6번까지 번호를 지정하여 각 case마다 fnd부분을 담당하게 만들었다.변수 중 time_stop, flag 가 있는 이는 앞서 1탄에서 설명했듯이 디지털시계에 시간을 변경해야 할 상황이 발생했을 때 시간 변경 모드로 진입을 위한 time_stop, fl..

ATmega128 디지털 시계 만들기 (2탄)

2탄에는 직접 구현한 코드를 설명하고 정리하는 단계로 만들려고 한다. 아직 많이 부족한 부분이 있어 감안하고 보완할 부분 댓글 주시면 너무 감사할듯합니다. 다 올려놓으면 너무 지저분에 보여서.. 전체적인 코드는 깃에 따로 정리하려고 한다.main.ctimer0,2와 timer1번 초기화를 진행했다. 8비트 타이머 0,2와 16비트 타이머 1을 사용한 이유는 필요한 모드나 오버플로 인터럽트 발생 빈도수를 다양하게 하고 싶어서 3개 타이머를 사용했다. 이후 관련해서 한번 더 설명하겠다. DDRB --> 부저를 사용하여 다른 기능을 추가, 필요할 때 동작 구현 하였다.DDRF --> switch로 입력으로 설정하여 스위치 입력값을 받을 수 있도록 하였다.DDRC --> FND에 위치 제어 설정을 위해 출력으로..

ATmega128 디지털 시계 만들기 (1탄)

ATmega128을 활용하여 디지털시계를 구현하려 한다. 1탄을 시작으로 개발 진행을 해보겠다. 임베디드를 배우는 입장에서 작성한 글이니... 틀리거나 부족한 부분 그리고 보완해야 할 것들이 많이 보일 것이다. 보일 때마다 도와주시면 감사하겠습니다!!!! Hardware configuration MCU는 ATmega128을 사용했고 마이크컨트롤러 JMOD-128 모듈을 사용했다.PA0~PA6 -> 4 FND digit control PC0~PC5 -> FND digit positionPD0~PD6 -> 2 FND digit controlPF0~PF5 -> switch controlPAx, PDx pin 은 FND에 숫자를 표현할 수 있는 digit control로 사용하였고 PCx pin은 표현한 숫자의..