일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uart 통신
- soc 설계
- java
- i2c 통신
- gpio
- dataflow modeling
- test bench
- FND
- ring counter
- Recursion
- prescaling
- behavioral modeling
- Edge Detector
- DHT11
- Linked List
- verilog
- hc-sr04
- BASYS3
- structural modeling
- stop watch
- ATMEGA128A
- atmega 128a
- Pspice
- LED
- half adder
- D Flip Flop
- Algorithm
- vivado
- pwm
- KEYPAD
- Today
- Total
목록gpio (4)
거북이처럼 천천히
6월 6일 현충일날, 쉬면서 ATmega 128 가지고 예전에 해보고 싶었던 거를 구현해 보았다. 1. 환경PORT F에 LED (KB-1008SR) 연결PORT D에 0~2핀에 버튼 연결 2. 동작PD 0 : 첫 번째 버튼, PD 1 : 두 번째 버튼, PD 2: 세 번째 버튼 으로 설정PD 0 : Low-level interrupt, PD 1 : Falling-edge interrupt, PD 2 : Rising-edge interrupt 를 각각 감지PD 0 버튼을 누르면 0핀부터 3핀으로 LED 빛이 accumulation 된다.PD 1 버튼을 누르면 7핀부터 4핀으로 LED 빛이 accumulation 된다.PD 2 버튼을 누르면 누적되었던 LED들이 점차 사라진다. 3. 구현 영상 4..

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번..