분류 전체보기 50

STM32 LED 버튼 제어, flower 동작

LED.C 코드 #include "led.h" #include "button.h" void led_main(void); void led_all_on(void); void led_all_off(void); void led_on_up(void); void led_on_down(void); void led_keep_on_up(void); void led_keep_on_down(void); void button0_led_all_on_off(void); void button0_led_all_on_off(void) { static int button0_count=0; //static으로 하면 전역변수처럼 동작한다. //한번 정확히 눌렀다 뗀 상태이면 if(get_button(BUTTON0_GPIO_Port, BUT..

STM32 2023.06.07

STM32 LED 켜기

개발환경 세팅이 되어있는지 확인을 위해 LED켜기 진행 64핀 PB0 ~ PB7 모두 좌클릭 후 GPIO_OUTPUT으로 설정 우클릭 후 ENTER USER LABEL 입력 PB0 ~ PB7 까지 LED0 ~ LED7 설정 버튼은 INPUT으로 설정. 마찬가지로 이름 또한 변경 DDR 설정 끝 설정한 DDR 코드를 생성할 것인지 물어봄 yes main.h 에 들어가면 만들었던 핀이 전부 나옴 구조체 inc #include "led.h" void led_main(void); void led_all_on(void); void led_all_off(void); void led_on_up(void); void led_on_down(void); void led_main(void) { while(1) { led_o..

STM32 2023.06.07

Verilog [vitis] FND controller

새 프로젝트가 생성된다. 8개의 레지스터를 가지는 AXI 모듈을 만듦. S_AXI 모듈을 만든것. FND 제어를 위해서 FND_4digit_switcher 가지고옴 copy sources into IP Directory 체크 필요 모듈을 제외하고 전부 삭제 모든 창에 체크표시가 나오도록하고 마지막 Re_Package IP를 클릭 그럼 +버튼을 눌렀을 때 만든 IP가 나온다. 오른쪽아래에 myip_FND_switcher 가 다시 생겼음을 확인할 수 있다. 출력을 클릭하고 make external 출력의 이름들이 seg_0, com_an_0로 바껴있어서 xdc파일에서 다 바꿔줘야함 Vitis fnd출력 확인 #include #include "platform.h" #include "xil_printf.h" #..

Verilog microblaze led 키기

버튼으로 led키는 실습 axi_gpio_LED를 더블 클릭하면 GPIO, GPIO2 두개 있는 것을 확인할 수 있는데 이번에 2번은 사용 X AXI GPIO 를 추가하고 ctrl + space 누르면 자동완성이 뜸 basys3 버튼 동작에 따른 led키기 코드 #include #include "platform.h" #include "xil_printf.h" #include "xparameters.h" #include "xgpio.h" #define BTN_ID XPAR_AXI_GPIO_BTN_DEVICE_ID #define LED_ID XPAR_AXI_GPIO_LED_DEVICE_ID #define BTN_CHANNEL 1 #define LED_CHANNEL 1 #define BTN_MASK 0b111..

Verilog Micro blaze 실습 Hello world 출력

설정 IP INTEGRATOR - Create Block Design 선택 후 mblaze_hello 클릭 clk 과 reset 버튼을 추가 후 + 아이콘(Add IP) 선택. Micro Blaze 추가 micro blaze 모델을 더블클릭 첫 페이지에서 microcontroller preset 으로 바꾼 후 나머지는 그대로 진행 +UART 통신을 하기위해 UART 사용 자동으로 TOP모듈이 만들어짐 create Platform Project build후 application project putty 설치 후 실행

Verilog 다목적 시계

기존에 진행했던 cook timer와 stopwatch를 합친 다목적 시계 프로젝트를 진행하였다. button 4번을 통해 mode변경을 할 수 있게 하였고, cook timer와 stopwatch를 번갈아가며 사용할 수 있다. cook timer 에는 시작 / 멈춤, 분 증가, 리셋, 초 증가 기능이 있다. stopwatch 에는 시작 / 멈춤, 기록, 리셋 기능이 있다. 각 버튼마다 기능을 설명해놨다. 파란 글씨는 cook timer, 검은 글씨는 stopwatch mode는 mode change를 위해 사용한다. 노이즈 제거를 위해 clock_divider와 D flipflop을 사용하였고, button 4로 모드변경을 위해 T flipflop과 demux를 사용했다. 또한 결합연산자를 활용하여 m..

Verilog HC-SR04 초음파센서 제어

HC-SR04는 40kHz의 초음파 송신부와 수신부로 구성되어있다. 모듈 스펙 입력 전원 : 5v 측정 거리 : 2cm ~ 4m 측정 각도 범위 : 15° 트리거 입력 신호 : 10us 1. 모듈의 Trig에 10 us의 High Pulse를 준다. 2. 40KHz의 8개 sonic burst 발생. [1번 과정을 거쳐야만 발생] 3. 에코는 초음파 발신 직후 HIGH level이 되고, 물체를 감지하면 LOW level이 된다. -> 에코 펄스는 즉, 초음파가 장애물을 만나 다시 에코로 돌아올때까지의 왕복 시간을 나타낸다, 4. 거리 = 에코 High Pulse 시간(왕복시간) x 소리의 속도(340m/s) / 2 -> 왕복이므로 2로 나누어 주어야한다. 초음파센서 TOP 모듈 코드 `timescale..