본문 바로가기

하만12

[Harman 세미콘 아카데미] 43일차 - ARM & RTOS 활용(Timer, EXTI, DMA) [Timer] Review 1. clock 발생 주기 계산법 Timer Interrupt 활용 /* USER CODE BEGIN PV */ int xVal=0, yVal=0, zVal=0; // 조이스틱 및 버튼 상태 변수 int cnt = 0; // ADC 변환 카운트 변수 int dir = 0; // 방향 변수 // 방향 문자열 배열 char *dirs[] = {"Front ", "Front-Left ", "Left ", "Back-Left ", "Back " , "Back-Right ", "Right ", "Front-Right", "Push", " "}; /* USER CODE END PV */ /* Private function prototypes --------------------------.. 2023. 8. 25.
[Harman 세미콘 아카데미] 42일차 - ARM & RTOS 활용(Endian, Review, Mission) [Endian] Endian이란? 컴퓨터 메모리와 같은 데티어 저장 방식을 의미한다. 컴퓨터 아키텍쳐마다 데이터 메모리를 저장하는 방식이 다르기 때문에 Endian이라는 개념이 나오게 되었다. 엔디언은 데이터의 byte 순서를 나타내며, 크게 두 가지 종류로 나뉜다.(Big Endian / Little Endian) Endian의 중요성은 주로 다른 시스템 간 데이터 교환 시 발생한다. 잘 다루지는 않지만, 통신, ADC과 같이 변환이 필요한 작업에서 종종 사용되기 때문에 이해하고 있어야 된다. Big Endian Big Endian은 MSB부터 시작하여 LSB까지 데이터를 나열하는 방식이다. 즉, 중요한 부분이 앞에 위치하고 순서대로 나열하며, 인간이 사용하는 수 나열법과 같다. 주로 네트워크 프로토콜.. 2023. 8. 25.
[Harman 세미콘 아카데미] 10일차 - Register, Memory [Register] Register란? FF 여러 개를 일렬로 배열하여 적당히 연결함으로써, 여러 비트로 구성된 2진수를 저장할 수 있도록 한 것 즉, 외부로부터 들어오는 데이터를 저장하거나 이동하는 목적으로 사용하며, 상태의 순서적인 특성을 갖는 것은 아니다. 다음과 같은 경우에 많이 사용 - CPU 내부에서 연산의 중간 결과를 임시 저장하는 경우 - 어떤 2진수의 보수를 구하는 경우 - 곱셉 또는 나눗셈을 하는 경우 등 Register의 종류 1. 직렬 입력 - 직렬 출력 레지스터 = SI-SO Register(serial input - serial output) module shift_register_SISO( /// SISO register 구조적 모델링 input clk, rst, d, outp.. 2023. 6. 30.
[Harman 세미콘 아카데미] 5일차 - Demux, 코드변환기 [Demux] Demux : 한 선의 입력을 받아 출력선들 중 하나를 선택하여 받은 정보를 전송하는 회로. 앞에서 만든 Mux와 Demux를 instance 하여 Top module에 장착 top module을 Test_bench로 보내 시뮬레이션 시행 우리는 d에 clk들을 넣어 줄 것므로, 위와 같이 수정해준다. 1. 테스트하고자하는 모듈의 입/출력을 복사해 온다. 2. 입력은 reg, 출력은 wire로 연결해해준다. 3. 모듈의 instance 선언 4. clock 설정 - clock 초기화 - clock toggle 5. 입력해서 test하고 싶은 값들을 initial 문 안에 넣어준다. 충분한 출력이 나올 수 있도록 여유롭게 시간을 주어야 함. 6. 시뮬레이션하고 결과 확인 [코드 변환기] : .. 2023. 6. 23.