일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- soc 설계
- test bench
- half adder
- Edge Detector
- Linked List
- prescaling
- D Flip Flop
- structural modeling
- behavioral modeling
- pwm
- uart 통신
- java
- DHT11
- vivado
- Recursion
- LED
- i2c 통신
- dataflow modeling
- stop watch
- atmega 128a
- ring counter
- BASYS3
- Algorithm
- FND
- gpio
- verilog
- KEYPAD
- ATMEGA128A
- hc-sr04
- Pspice
- Today
- Total
목록ATMEGA128A (17)
거북이처럼 천천히

Button 3개를 통해 서로 다른 Interrupt을 설정하여 LED를 컨트롤하기 1) 목표: PORT D 에 PD0, PD1, PD2에 스위치, PORT A 에 LED를 연결한 뒤, 서로 다른 interrupt을 설정하여 각각의 버튼을 눌렀을 때, 서로 다른 Interrupt 때 LED를 컨트롤 할 수 있게끔 설계하기PD0 : Low-level sensitive 에서 Interrupt를 발생하도록 설계 LED가 짝수 핀들에 다이오드 전부 불이 들어오도록 한 뒤, 짝수 번째 다이오드에 전부 불이 들어오면 홀수 핀들에 다이오드 전부 불이 들어오도록 설계한다.PD1 : Rising-edge sensitive 에서 Interrupt를 발생하도록 설계 LED의..
Button 3개를 통해 LED를 컨트롤1) 목표: PORT D에 PD0, PD1, PD2 각각 Button을 연결 한 뒤, PORT A에 연결된 LED를 컨트롤하기. PD0 : LED 에서 0, 2, 4, 6번째 다이오드를 출력 PD1 : LED 7번째 다이오드부터 0번째 다이오드까지 shift하면서 출력 PD2 : LED 0번째 다이오드부터 7번째 다이오드까지 shift하면서 출력 2) 선행 지식 : 해당 회로는 Pull-Up 구조 회로를 구성했기 때문에 Switch를 누르기 전에는 5V 전압이 들어오 다가Switch 를 누르면 GND로 short되어 전류는 더이상 Pin쪽으로 향하지 않고, ..
1. 환경 : Microchip Studio2. 목표 : 1) PD0에 버튼을 연결, 2) Pull-UP 회로 구성 3) PORTF에 LED의 연결 한 뒤, 3번째 핀만 출력으로 사용 ==> 버튼을 누르기 전 상태는 LED가 꺼져 있지만, 버튼을 누르면 LED가 켜지도록 설계3. 선행 지식- 프로그래밍 하기전, 회로를 구성함에 따라 동작 결과는 전혀 다르게 나타나기 때문에 회로에 대한 기초 지식이 필요하다.- Floating, Pull-up, Pull-down 에 대해서 이해할 필요가 있다.- https://jbhdeve.tistory.com/147 Floating, Pull-up, Pull-down목표) 다음과 같은 궁금증을 알아보도록 하겠다. ..

1. 환경 : Microchip Studio2. 목표 :DDR 전체를 출력/입력으로 설정하는 것이 아닌 Bit 단위로 설정하여 효율적으로 LED를 출력하도록 설계구조체(Structure)를 이용하여 구현함으로서 구조체의 기본 지식 정비 및 기본 활용 공부3. 큰 그림: 이전까지는 DDRD = 0xff로 선언하여 PORTD의 8핀 전체를 출력으로 사용하거나 DDRF = 0x00으로 선언하여 PORTF의 8핀 전체를 입력으로 사용했다.하지만, 이는 비효율적으로 하드웨어를 제어 하는 것이기 때문에 bit 단위로 입력/출력을 설정함으로서효율적으로 하드웨어를 제어하도록 설계하겠다.ex) DDRD = 0x18→ PORTD에서 3번째, 4번째만 출력으로 사용하겠다는 의미구조체를 정의하여 구조체 내에 1) PORT의 ..
1. 환경 : Microchip Studio2. 목표 : Pointer 개념을 활용하여 GPIO Control 함으로서 Pointer의 개념 정비 및 기본 활용 학습3. 구현 내용 : Shift 연산자와 Bit OR 연산자를 이용하여 1번쩨 비트 ~ 7번째 비트까지 누적하여 LED 출력4. Source codemain.c controlLED.c (LED에 관한 함수)common.h (라이브러리, 기본 헤더 파일을 include 한 파일)personal.h (함수 원형 선언 및 상수 선언)#include "personal.h"int main(void) { initDDR(); // 임의의 데이터를 초기화 uint8_t data = PORTD1; while(1) { contr..
1. Separate compilation이란?- 분할 컴파일은 프로그램 설계하는 과정에서 유사한 함수 및 기능끼리 묶어 별개의 파일로 만들어 개발하는 방법을 의미 2. Separate Compilation의 장점- 코드의 가독성이 좋음.- 유지 보수 측면에서 효율적- 수정 작업이 이루어진 코드에 대해서만 컴파일하기 때문에 불필요한 시간 없어짐 - 아래 예시를 통해 Separate Complication의 장점을 살펴보자. ※ 아래 코드들은 다음과 같은 기능을 수행한다. ※ 0번 비트 -> 3번 비트로 Left Shift하고, 7번 비트 -> 4번 비트로 Right Shift 하는 동시에 반전 출력 ※ 3번 비트 -> 0번 비트로 Right Shift하는 동시에 반전 출력하고, 4번 비트 -> 7번..
새로운 배운 내용 및 용어가 생기면 자주 수정이 발생할 예정DDR : Data Direction Register- 특정 PORT에서 각각의 핀을 출력으로 사용할지, 입력으로 사용할지 여부를 결정하는 레지스터- 특정 PORT에서 특정 bit 위치에 1을 쓰면 "해당 비트는 출력으로 사용하겠다." 의미- 특정 PORT에서 특정 bit 위치에 0을 쓰면 "해당 비트는 입력으로 사용하겠다," 의미PORT : Port Data Register- 해당 포트가 출력으로 설정되었다면 출력값을 선택할 수 있는 레지스터- PORT 레지스터에서 특정 bit 위치에 1을 쓰면 "해당 비트(핀)의 신호는 1(=5V)로 출력" 의미- PORT 레지스터에서 특정 bit 위치에 0을 쓰면 "해당 비트(핀)의 신호는 0(=0V)로 출..

1) 환경 : Microchip studio2.) 목표 : 0핀 -> 3핀 -> 0핀, 7핀 -> 4핀 -> 7핀 LED를 Shift하여 출력3) Source code#define F_CPU 16000000UL#include #include #define TIME 150int main(void) { // PORTD의 8핀을 출력으로 설정 // PORTD = 1111 1111 DDRD = 0xff; while(1) { for(uint8_t i=0; i>i); _delay_ms(TIME); } // i의 값을 1 ~ 3으로 설정한 이유 // 0 ~ 4까지로 설정할 경우, 0, 3, 4, 7핀이 중복해서 불이 들어오기 때문에 ..