1. 밤샌 날 (2023-04-10) 한것:
속도센싱과 통신이 동시에 안 되는 문제 해결
그 때 기록한 것들
21:26 주행 시작
stime ->문제없음
sTime이 volatile uint32인가 이걸로 되어있었는데 int로 바꾸니까 괜찮음
뭔가 TIM7번이 어떤거랑 충돌하는 것 같음
7번대신 TIM8번으로 바꿈
44, 999로 설정함
그래도 안돼서 그냥 이상한 TIM7 없앰
그리고 1초마다 속도값 받아오는거니까 같은 속도 주기 쓰는 TIM3번 (gtimercount변수 ++ 하는거) 이용함
이렇게 하니까 1초마다 속도값 업데이트는 잘 됨
이제 통신 되는지랑
자석 센서 잘 되는지
CLCD만 체크하면 됨
뭔가 CLCD는 포기해야 할 삘임
통신은 비트로 보냈다가 다시 받아오는 거만 잘 하면 될듯
ㅠㅠ하 버퍼 길이가 문제인가..?
뭔가 그랬던 것 같음
double을 Tx_buffer배열로 보내려면 버퍼렝스의 길이가 8이여야 함.
보내는 코드를 비트 연산자에서 주소 건드리는 방식으로 바꿈
아악 됐다
시간에 따른 값을 보내고
받아와서 확인 가능
스튜디오에는 자료형만 double로 잘 선택하면 스피드값이 잘 뜨는데 테라텀에서는 %f, %g 둘다 이상하게 뜸
그래서 그냥 값 확인은 stm studio를 사용해야 할 듯..
뭔가 블루버튼 인터럽트 걸리는 간격이 길어서 그런가 sCheck변수를 인터럽트 방식으로 ++시키는데 1까지밖에 안올라감..
그래서 일단 시간을 2000으로 바꿈(1000으로 다시 바꿔야함)
일단은 EXTI15에 홀센서 그게 있었으니까 그걸 우선순위를 높이기 위해 나머지의 Sub Priority를 1로 바꿈
EXTI15안에 블루버튼이랑 홀센서 둘 다 있음.
우리가 다른게 PLLI2SM 클럭이 지규는 *192로 되어있는데, 나는 *50으로 되어있음. 이것 뺴고는 클럭 설정 동일
블루버튼 우선순위가 문제가 아닐지도 모름... 뭔가 디바운싱 문제라는 지피티의 의견이 있었음. 디바운싱 해보자...
sCheck를 괜히 int로 바꿔봄
void EXTI15_10_IRQHandler(void)함수 안에 HoleCheck = true;라는 코드가 있었다. 이 문제는 아마 핸들러에서는 빠르게 인터럽트 루틴을 실행시켜야 하는데 이런 명령문이 있었고, 또 홀체크가 true라면 메인문에서 holesensor 함수가 실행되어 sCheck++까지 실행되고 그 다음에 holesensor이 false가 되기 때문에 그 시간동안 다른 루틴을 처리할 수 없었을 것 같다. 그래서 이 구문을 없애봤다..
시흥테스트 체크리스트(제어- 속도& 속도값 통신)
1) 23_tx파일 - 봐야하는 변수
- D_sec: 1초마다 증가. 현재 스톱워치 시간이 가고있는지 체크
- speed: 자동차 MCU에서 계산하는 현재속도값 (sCheck값으로 계산)
- tx_count: 성공적으로 통신 보내지고 있는지를 나타냄. 보내졌다면 1초에 2씩 증가하는 값
- bt_speed: 보내는 MCU에서 계산한 speed값을 bt_speed 변수에 복사하여 통신함. 즉 speed변수가 이 변수와 잘 동기화 되는지 체크
- sCheck: 1초당 돌아가는 바퀴 수.
2) 23_rx파일 - 봐야하는 변수
- D_sec: 1초마다 증가하는지 확인 (그냥 기준 시간으로 쓰려고 스톱워치 기능 넣은것)
- received_speed: 받아와서 완전한 숫자로 복구한 통신받은 데이터. 속도값을 잘 나타내는지 확인
- rx_count: 1초에 2번씩 증가하는지 확인 (그렇다면 잘 통신받고 있는 것)
코드 보완할 점
- 계속 입력이 있으면 괜찮은데, 아무것도 보내지 않는 상태가 지속되면 reset버튼을 눌러야 함 -> 현재 생각하는 해결 방안은 워치독 타이머 기능 추가하는 것
1. 보내는 측(Tx) 차 stm 연결
2. 받는 측(Rx) 노트북에 stm 연결
3. Tx와 노트북 연결하고 STM Studio로 변수 값 확인/ 버튼이나 휠 돌려서 변수들 잘 바뀌는지 확인
4. 통신받을 Rx측 노트북에 STM Studio 켜고, 차와 연결된 곳 블루버튼 누르거나 휠 돌려보면서 수신측 수신 잘 되는지 확인
'프로젝트 기록' 카테고리의 다른 글
성원 원호 공유한 내용 (0) | 2022.12.29 |
---|---|
PCB (단어)정리 + 배선 기본 (0) | 2022.12.29 |