프로젝트 기록176 stm32 타이머 인터럽트 몇가지 레지스터 설정 하고 타이머 활성화시키면 타이머에 클럭 공급되기 시작. 그때마다 클럭세는 카운터 레지스터가 자동으로 증가 특정 값이 업데이트되면 인터럽트 발생 , 카운터 레지스터 0으로 초기화 TCNT 레지스터: 32비트 타이머기 때문에 2^32 - 1 = 4294987295까지 셀 수 있음 그까지 가면 오버플로우 발생 -> 다시 0부터 1 반복 ... 업데이트 발생 값을 미리 AutoReload Register 에 넣어주면 됨 = period 레지스터 만나면 업데이트 인터럽트 발생 후 카운터 레지스터 다시 0으로 초기화. 주기를 원하는 시간으로 설정하려면 1증가하는데 걸리는 시간을 알아야 함 클럭 개념. 168Mhz APB AMBA 개념 설명 찾아보기 2022. 10. 4. TIMER 실습 2개 및 가변주파수 pwm 보호되어 있는 글 입니다. 2022. 9. 29. PWM제어 일단 아두이노에서 analogWrite() 함수 쓰는 것 = PWM출력 이라고 생각하면 됨 타이머로 pwm 함수 써서 코드를 짠 다음, 해당 타이머 핀에 LED연결해서 출력 확인하면 밝기가 커지고 작아짐. 즉, 타이머 패리페럴에서 pwm로 듀티비를 변경하고(=출력될 전압값을 변경함) 나면 타이머 핀의 출력값을 조절할 수 있는 거임 +)개인적으로 타이머랑 pwm을 연결하기가 어려운데, 타이머는 그냥 클럭 펄스 수를 세는 것이라고 생각하면 편함. 타이머: MCU 내부 발생 클록 계수 카운터: MCU 외부 입력 클록 계수 (인터럽트 기능으로 자명종까지 같이 많이 사용함) 프리스케일러는 이 클록을 너무 많이 세면 곤란하니까, 타이머에 공급되는 클럭신호를 더 느린 신호로 만들기 위해 내부 클럭을 분주하는 것 프리.. 2022. 9. 29. 통신(UART, SPI, CAN)/ 어디에 어떻게 쓸 것인가? UART 이 UART_Trasnmit() 를 대신하는 printf() 함수 사용 시 주의점: 반드시 전송하는 문자열의 끝이 newline(\n) 으로 끝나야 함. 즉, 내부에서 \n 이 들어올 때 까지는 전송을 시작하지 않음 SPI: 시리얼통신 중 동기식 통신. MCU, Shift register 등 소형 패리패럴들 데이터 전송 양방향 통신 가능 = 전이중 통신 마스터 슬레이브 모드 Chip select 라인으로 여러 슬레이브 선택 가능 신호 4가지 지정해야 함 SCLK: serial clock. 직렬 클럭. 마스터 출력, 슬레이브로 입력. 동기화 신호로 역할, 즉 통신 clock. 이 클럭으로 SPI통신 주기 설정 MOSI: Master Output Slave Input, 마스터에서 슬레이브로 데이터 .. 2022. 9. 28. Peripheral 중 External Interrupt 사용 내용: NUCLEO 보드의 B1버튼 누르면 외부 인터럽트 발생- LED가 2번 깜빡이는 동작 인터럽트 관련 설정하고 코드 만들면 바로 인터럽트 관련 코드 생김 인터럽트 발생 시 함수 호출 순서는 EXT15_10_IRQHandler() HAL_GPIO_EXTI_IRQHandler() HAL_GPIO_EXTI_Callback() 코드는 다 생기니까 우리가 수정할 부분은 Callback 함수 실행 내용 만들면 됨 인터럽트 관련 설정하려면 NVIC 에서 해야 함 할 수 있는 것들 시스템 관련 인터럽트 활성화/비활성화 인터럽트 우선순위 변경 인터럽트: 기본 설정은 rising edge로 되어있는데, BI 푸쉬버튼 회로도 보면 버튼을 눌렀을 때 신호가 High에서 LOW로 바뀌므로 falling edge로 설정 변경 2022. 9. 28. USART, UART차이점 정리/ 시리얼 통신(USART) 정리: 클락의 유무 (유:USART, 무:UART) USART(Universal Synchronus/asynchronous R T) = 범용 동기/비동기화 송수신 (반이중) : 데이터 동기화를 위해 별도 클록 신호 전송. 클락의 유무만 체크하여 데이터 송수신, 효율이 높고 동기식이라 속도도 빠름, 클락 핀때문에 비싸고 어려움 클락때문에 데이터, 타이머가 모두 필요하고 속도가 고정되어 있음(빠름), 데이터를 일반적인 블럭 형태로 전송 UART(Universal Asynchronous Receiver Transmitter)= 범용 비동기화 송수신 (전이중) : 데이터만 보냄. 데이터 시작과 끝을 알기 위해 Start Bit(항상 0), Stop Bit(항상 1)가 필요함 (+오류검출 Pariry비트) 속도가.. 2022. 9. 28. 이전 1 ··· 26 27 28 29 30 다음