일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hc-sr04
- Pspice
- BASYS3
- soc 설계
- half adder
- dataflow modeling
- structural modeling
- Linked List
- behavioral modeling
- java
- verilog
- prescaling
- Algorithm
- ATMEGA128A
- uart 통신
- LED
- KEYPAD
- Recursion
- i2c 통신
- ring counter
- D Flip Flop
- atmega 128a
- test bench
- stop watch
- FND
- Edge Detector
- pwm
- gpio
- DHT11
- vivado
- Today
- Total
목록LED (6)
거북이처럼 천천히
Verilog을 공부하면서 머리 속에서 잊어버린 AVR에 대해서 다시 공부하기 위해 LED와 버튼을 이용한 게임을 만들었다. 게임은 간단하다. 두 명의 플레이어가 두 개의 버튼을 가지고, 누가 먼저 4번을 누르는지를 대결하는 게임이다. 각각 Player1, Player2이 하나의 버튼을 할당 받고, 대결한다. 1. 환경PORTD 0번째, 1번째에 Button 연결Button 0 : Player1, Button 1 : Player2PORTF에 LED 연결Button은 Pull-up 저항과 함께 Pull-up 형태 연결단, Interrupt 사용없이 PIN Register를 사용하여 버튼이 눌렀는지 여부를 확인 2. 동작Player1은 PORTD0, Player1은 PORTD1의 버튼을 사용한다.Pla..
그 동안 Verilog를 공부하면서 AVR 에 대한 지식이 머리속에서 점차 사라지는 것 같았다.따라서 LED를 가지고 이것저것하면서 AVR 에 관한 지식 및 감(?)을 쌓기 위해 "LED을 통한 뱀(?)을 출력" 하는 것을 해보았다. 1. 환경PORT F에 LED(KR-1008SR)을 연결 2. 동작LED에 일렬로 LED를 키는데, 이는 유한한 길이를 갖는다. 따라서 유한한 길이를 갖고, 일직선 형태를 갖기 때문에 뱀(?)이라고 하겠다.뱀의 길이는 define 키워드를 사용하여 상수로 지정하였고, 원하는 뱀의 길이로 조정 가능뱀의 머리가 LED에 나타났다가 뱀의 꼬리가 LED에서 사라지면 그제서야 다시 뱀이 LED에 나타난다.( 이해가 되지 않는다면 구현 영상을 보는 것을 추천 ) 3. 구현 영상 ..
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. 목표 : 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번..

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핀이 중복해서 불이 들어오기 때문에 ..