전체 글 100

2024.6.26 [Verilog]⑦ - 병렬입력-병렬출력 레지스터, 메모리, 스톱워치 만들기 진행단계

2024.6.26 수업날오늘부터 베릴로그 수업을 다시 진행한다.저번에 배웠던 레지스터를 이어서 배워보고, 메모리에 대해 알아보며 스톱워치 만들기 초기단계를 진행한다.병렬입력-병렬출력 레지스터는 입력을 AND 게이트로 입력값으로 연결하여WR가 1이면 AND게이트를 통해 D플립플롭의 입력으로 들어간다. 만약 WR가 0이면 0이 써지므로 초기화가 된다. 병렬입력 병렬 출력 레지스터에도 3상버퍼가 쓰인다.E의 값이 0이면 출력값이 입력값을 따라가고, E의 값이 1이면 출력값은 모두 임피던스가 된다. 병렬입력-병렬출력 레지스터/////////////////////////////////////////////////// 2024.6.26//병렬입력 병렬출력 레지스터module register_n( ..

2024.6.25 [혼자 공부하는 C언어]③ - 연산자

2024.6.25 교재 113p~이번에느 데이터를 가공하는 다양한 연산자를 알아보고 연산자를 효율적으로 사용하는 방법을 알아본다.산술 연산자에는 +, -, *, /, %(나머지) 가 있다.모두 2개의 피연산자(연산의 대상이 되는 데이터)를 사용하며, -는 피연산자를 하나만 사용할 때 피연산자의 부호를 바꾸는 역할도 한다.나눗셈 연산은 피연산자가 모두 실수이면 실수, 피연산자가 모두 정수이면 몫만 계산되므로 값을 저장하는 변수도 그에 맞게 사용해야한다.실수 연산에는 나머지의 개념이 없으므로 나머지 연산자의 피연산자로는 반드시 정수만 사용한다.  예를 들어, a라는 int형 변수에 1을 더하려면 a = a + 1; 이라고 할 수 있지만, 더 간단하게 a++ 로 표현할 수 있다.이는 -연산에서도 마찬가지이다...

2024.6.25 [ATmega128a]⑨ - Ultrasonic(int, ICP), EZ motor R300

2024.6.25 수업날오늘은 어제 배웠던 HC-SR04(Ultrasonic) 초음파 센서를 가지고 INT, ICP 형식으로 코드를 작성하고EZ moter r300으로 선풍기를 만드는 프로젝트를 진행하였다.어제 배웠던 Ultrasonic 초음파 센서를 INT 형식으로 소스코드를 작성한다.결과는 똑같지만, 소스코드의 내용에는 차이가 있다./* * def.h * * Created: 2024-06-25 오전 9:20:11 * Author: USER */ #ifndef DEF_H_#define DEF_H_#define F_CPU 16000000UL#include #include #include #include #include #include #endif /* DEF_H_ */먼저, def.h라는 헤더파일이 추..

2024.6.24 [혼자 공부하는 C언어]② - 변수와 데이터 입력(수정중)

2024.6.24오늘은 효율적인 데이터 처리를 위해 필요한 다양한 변수의 형태와 특징을 알아본다. 교재 81p~예를 들어, 정수를 저장할 변수는 int a; 라고 나타낸다.int 가 자료형이고, a가 변수명이다. 변수명은 메모리에 붙이는 임시 주소와 같은 개념이다. 컴퓨터의 메모리는 재활용되는데, 프로그램이 종료되면 사용하던 메모리 공간을 반납하고 새로 실행된 프로그램이 그 공간을 사용한다. 새 프로그램에서 종료된 프로그램이 어떤 값을 메모리 공간에 남겨 놓았는지는 알 수 없으므로 의미가 없는데 이를 쓰레기 값이라고 한다.이 쓰레기 값 때문에 오류가 생길 수 있으므로 반드시 원하는 값으로 바꾸는 초기화 과정이 필요하다.a = 10; 을 예로 들면 = 라는 대입연산자를 사용하여 오른쪽의 값을 왼쪽으로 저장..

2024.6.24 [ATmega128a]⑧ - I2C 통신, ULTRASONIC(HC-SR04)

2024.6.24 수업날오늘부터 내일까지 ATmega128a를 활용하여 다시 공부해보는 시간을 가진다.I2C통신은 여러 주변장치들이 최소한의 연결선만을 사용하여 저속으로 통신하는 방법이다.I2C는 송신과 수신이 동시에 이루어질 수 없는 반이중 방식을 사용한다.슬레이브 장치의 개수와 무관하게 데이터 전송을 위한 SDA, 클록 전송을 위한 SCL의 2개의 선을 필요로한다. I2C는 동기 방식이다. 따라서 수신된 데이터는 SCL이 HIGH인 경우 SDA의 데이터는 안정된 상태에 있어야만 한다. 데이터 전이는 SCL이 LOW인 상태에서만 가능하다. 하지만 SCL이 HIGH인 경우에도 데이터 전이가 발생하는 두 가지 예외 상황이 있는데, 데이터 전송 시작과 종료를 나타내는 경우다.SCL이 HIGH인 경우 SDA가..