STM32 조이스틱 응용, 인터럽트 활용

하만(Harman) 세미콘 반도체 설계 과정/ARM Architecture 이해 및 RTOS 활용

STM32 조이스틱 응용, 인터럽트 활용

semicon_circuitdesigner 2024. 7. 17. 16:10
728x90

HDL_ADC_PollForConversion: Polling 방식으로 Conversion

1.PB0를 GPIO_INPUT으로 설정 후 System Core - GPIO에서 다음과 같이 설정

 

.

.

..

5. TIM3 설정

 

. TIM3 인터럽트 설정

. Code Generation

 

작동 확인

 

 

1. Test005-ADC-DMA 프로젝트 생성

2. ioc 파일에서 핀 설정 후 순서대로 X_Axis, Y_Axis, Z_Axis 라벨링

 

3. 좌측 Analog - ADC1 탭에서 Parameter Settings 변경

 

4. DMA Settings에서 Add - ADC1 선택 - 아래와 같이 세팅값 변경

Circular 방식: 메모리에 데이터를 채울 때 메모리 공간을 모두 채우면 다시 처음 주소에 데이터를 저장하는 방식
 - 메모리에 FULL이 되지 않음

Peripheral: ADC 파트 / Memory: Program 파트

 

5. 다시 Parmaeter Settings에서 DMA Continuous Requests 활성화(4번 미진행 시 활성화 불가능)

 

6. Number Of Conversion 2개로 변경 후 채널 번호 변경

 

7. EOC 세팅값 변경

 

8. NVIC 세팅에서 ADC1 global interrupt 활성화

 

9. Parameter Settings에서 External Trigger Conversion Source 옵션 변경

 

10. Timers 탭의 TIM3에 Internal Clock을 인가하고 PSC와 ARR 값, Trigger Event Selection 변경

 

11. GPIO탭에서 설정 변경

 

12. Code Generation

 

13. PA4를 ADC1_IN4로 설정 후 CDS로 라벨링

 

14. Analog - ADC1에서 Rank 추가 후 Channel 4번 확인

 

15. Code Generation

16. src 폴더에 myLib.c 복사해오기

17. 코드 수정: ProgramStart 삽입, 함수 작성

 

18. 작동확인: 조도센서 값은 오른쪽 숫자에 나타나고, 왼쪽 P 괄호 내에 조이스틱 값 표시

 

 

728x90
반응형