일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- KEYPAD
- uart 통신
- i2c 통신
- DHT11
- test bench
- prescaling
- soc 설계
- Linked List
- ATMEGA128A
- ring counter
- java
- LED
- D Flip Flop
- gpio
- Algorithm
- Recursion
- pwm
- stop watch
- BASYS3
- vivado
- Edge Detector
- hc-sr04
- half adder
- behavioral modeling
- FND
- Pspice
- structural modeling
- dataflow modeling
- atmega 128a
- verilog
- Today
- Total
목록Embedded Programming (AVR) (30)
거북이처럼 천천히
※ 정리 할 내용이 추가 될 수 있음. Q) 왜 #define F_CPU 16000000UL를 작성해야 하며, 이는 어떤 의미를 갖는가?- define 전처리기를 이용하여 16000000UL를 F_CPU로 정의한 이유는 avr studio에 내장된 delay 함수를 사용하기 위해 클럭을 재정의하는 것이다.#define F_CPU 16000000UL#include - delay.h 헤더파일에서 클럭의 기본 설정은 아래와 같이 클럭을 1000000UL, 1MHz로 설정된 상태이다.#ifndef F_CPU/* prevent compiler error by supplying a default */# warning "F_CPU not defined for "/** \ingroup util_del..
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핀이 중복해서 불이 들어오기 때문에 ..

GPIO - 8개의 LED를 Shift하며 출력1) 목표: Atmega 128a의 PORTD 8개의 LED를 연결 한 뒤, 0번째 비트에서 7번째 비트까지 Shift하면서 출력2) 환경: Microchip Studio 3) Source code#define F_CPU 16000000UL#include #include #define TIME 150int main(void) { // PORTD의 8핀을 출력으로 설정 // PORTD = 1111 1111 DDRD = 0xff; while(1) { for(int i=0; i※ 0번째 핀에서 부터 시작하여 7번째 핀까지 150ms 주기로 Left Shift하면서 출력※ PORTD1은 define 전처리기를 통해 1로 정의 (자세한 내..