Xiaohai Li
/
RPi_MOT_HAT
Raspberry Pi MOT HAT Based on STM32F030R8. The clock needs to be changed to 8MHz after export.
AplicationLayer/SelfTest.cpp
- Committer:
- nightseas
- Date:
- 2020-01-06
- Revision:
- 4:fb5235d39a9c
- Parent:
- 3:171f4d0ca77b
File content as of revision 4:fb5235d39a9c:
#include "SysConfig.h" void SpeedTest(void) { uart_db.printf("[Speed Test]\n\rMOT1 = %drpm, MOT2 = %drpm, MOT3 = %drpm, MOT4 = %drpm.\n\r", Mot_GetSpeed(1), Mot_GetSpeed(2), Mot_GetSpeed(3), Mot_GetSpeed(4)); } void VoltageTest(void) { uart_db.printf("[Voltage Test]\n\rVBAT = %.2fV, VDD12V = %.2fV, VDD5V = %.2fV, VDD3V3 = %.2fV.\n\r", Vmon_ReadVolt(1), Vmon_ReadVolt(2), Vmon_ReadVolt(3), Vmon_ReadVolt(4)); } void MotTest(void) { int dir, turn; uart_db.printf("\n\r==== Motor Test ====\n\r"); for(int i=0; i<100; i+=20) { uart_db.printf("\n\rMotor speed set to %d%%.\n\r", i); uart_db.printf("-->Motor will move forward.\n\r"); dir = 'f'; uart_db.printf("---->Motor will move straight.\n\r"); turn = 'm'; Mot_Ctrl(dir, turn, (float)i / 100.0); SpeedTest(); VoltageTest(); LedToggle(0); wait(3); uart_db.printf("---->Motor will turn left.\n\r"); turn = 'l'; Mot_Ctrl(dir, turn, (float)i / 100.0); SpeedTest(); VoltageTest(); LedToggle(0); wait(3); uart_db.printf("---->Motor will turn right.\n\r"); turn = 'r'; Mot_Ctrl(dir, turn, (float)i / 100.0); SpeedTest(); VoltageTest(); LedToggle(0); wait(3); uart_db.printf("-->Motor will move forward.\n\r"); dir = 'b'; uart_db.printf("---->Motor will move straight.\n\r"); turn = 'm'; Mot_Ctrl(dir, turn, (float)i / 100.0); SpeedTest(); VoltageTest(); LedToggle(0); wait(3); uart_db.printf("---->Motor will turn left.\n\r"); turn = 'l'; Mot_Ctrl(dir, turn, (float)i / 100.0); SpeedTest(); VoltageTest(); LedToggle(0); wait(3); uart_db.printf("---->Motor will turn right.\n\r"); turn = 'r'; Mot_Ctrl(dir, turn, (float)i / 100.0); SpeedTest(); VoltageTest(); LedToggle(0); wait(3); } } void SelfTest(void) #if 1 { uart_db.printf("Starting motor velocimeter...\n\r"); Mot_StartVelocimeter(); MotTest(); Mot_StopVelocimeter(); } #else { //Breath LED int i, j; led_mb = 0; while(1) { for(j=0;j<=100;j++) { for(i=0;i<=100;i++) { led_mb = 1; wait_us(j); led_mb = 0; wait_us(100-j); } } for(j=100;j>=0;j--) { for(i=0;i<=100;i++) { led_mb = 1; wait_us(j); led_mb = 0; wait_us(100-j); } } wait_ms(200); } } #endif