본문 바로가기

Interrupt6

[Harman 세미콘 아카데미] 98일차 - SoC Design(AXI, SystemVerilog를 활용한 Simulation, button Interrupt, switch Interrupt) [AXI Protocol] 📌 Block Design 이번엔 얘부터 추가해준다. VIP : verification IP라고, 검증된 IP라는 뜻 📌 Simulation 현장가면 검증할 때, SystemVerilog를 대부분 사용하므로 미리 맛 좀 보고 가자. 가장 큰 차이점은 C++처럼 객체(Class)를 만들 수 있다는 장점이 있다. Class의 장점은 다른 사람이 만들어 놓은 것을 가져다 쓰기 편하다는 것이다. (Class의 Include가 가능) 그러다보니 가져다 쓸 만한 것들도 많이 만들어 놨음 가장 대표적인 것이바로 UVM Verilog vs SystemVerilog Verilog SystemVerilog include import reg bit wire logic import axi_vip_p.. 2023. 11. 23.
[STM32(ARM) Project] Pacman 게임 만들기(ADC, 조이스틱, I2C, LCD, PWM, Timer 등) [Mission] 📌 Specification ✅ 제작 기간 : 2023.09.06~2023.09.08 (3 Days) ✅ Board : STM32 Nucleo - F411RE ✅ Tool : STM32CubeIDE GitHub Link GitHub - Graffitio/Project_Pacman Contribute to Graffitio/Project_Pacman development by creating an account on GitHub. github.com 📌 Mission : STM32 board와 각종 기능들을 활용하여 Pacman 게임을 구현해보자. M1. 조이스틱을 이용하여 pacman의 움직임을 제어한다. M2. 통신 방식(UART, I2C 등) 중 하나를 선택하여 LCD로 게임을 출력.. 2023. 9. 14.
[Harman 세미콘 아카데미] 47일차 - ARM 및 RTOS 활용(Interrupt, DMA, PWM) [Interrupt] void JoyStick(int op) { HAL_ADC_Start(&hadc1); HAL_ADC_PollForConversion(&hadc1, 100); xVal = HAL_ADC_GetValue(&hadc1); HAL_ADC_PollForConversion(&hadc1, 100); yVal = HAL_ADC_GetValue(&hadc1); HAL_ADC_Stop(&hadc1); zVal = !(HAL_GPIO_ReadPin(z_Value_GPIO_Port, z_Value_Pin)); if(op)printf("x : %5d, y : %5d, z : %d \r\n", xVal, yVal, zVal); } 우리가 만든 JoyStick 함수는 소프트웨어 컨버젼 방식이기 때문에, 함수를 .. 2023. 8. 31.
[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.