mirror of
https://github.com/DashyFox/StackSport.git
synced 2025-06-28 13:19:41 +00:00
release
This commit is contained in:
@ -120,6 +120,8 @@ void IR_Home_Process() {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}else if(currentInfo.state != RUN){
|
||||
startShooting(infoBlock.hwInfo.timings.preRun);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -209,8 +211,85 @@ void IR_Home_Process() {
|
||||
// }
|
||||
// led_clear();
|
||||
break;
|
||||
{
|
||||
sound_play_note((Note_t){0, 0, 50},3);
|
||||
Shot wrShot;
|
||||
wrShot.isExist = 0xAA;
|
||||
wrShot.countRepeatShot = 0xBB;
|
||||
wrShot.rotationAxial = 0xCC;
|
||||
wrShot.rotationHorizontal = 0xDD;
|
||||
wrShot.rotationVertical = 0xEE;
|
||||
wrShot.speedRollerBottom = 0xFF;
|
||||
wrShot.speedRollerTop = 0x0F;
|
||||
wrShot.speedScrew = 0xF0;
|
||||
|
||||
case IR_FRONT_MID: {
|
||||
for (int i = 0; i < MAX_SHOT_COUNT; ++i) {
|
||||
print("SAVE ");
|
||||
printNumber(i);
|
||||
print(" -> ");
|
||||
MemoryStatus saveStat = saveShot(i, &wrShot);
|
||||
if(saveStat == EEPROM_OK){
|
||||
print("OK");
|
||||
} else {
|
||||
print("EEPROM_FAIL");
|
||||
}
|
||||
print(" -> ");
|
||||
HAL_Delay(100);
|
||||
print(" READ -> ");
|
||||
Shot rShoot = {0};
|
||||
MemoryStatus status = getShot(i, &rShoot);
|
||||
print(" ");
|
||||
switch (status) {
|
||||
case EEPROM_FAIL:
|
||||
print("EEPROM_FAIL");
|
||||
break;
|
||||
case EEPROM_MISSING_ELEMENT:
|
||||
print("EEPROM_MISSING_ELEMENT");
|
||||
break;
|
||||
case EEPROM_OUT_OF_RANGE:
|
||||
print("EEPROM_OUT_OF_RANGE");
|
||||
break;
|
||||
case EEPROM_WRONG_STARTADDR:
|
||||
print("EEPROM_WRONG_STARTADDR");
|
||||
break;
|
||||
case EEPROM_OK:
|
||||
print("EEPROM_OK");
|
||||
break;
|
||||
default:
|
||||
print("???");
|
||||
break;
|
||||
}
|
||||
print(" - > ");
|
||||
if(memcmp(&rShoot, &wrShot, sizeof(Shot)) == 0){
|
||||
print("OK\n");
|
||||
} else {
|
||||
print("ERROR !!!!!!!!!!!!!!!!!!!!!\n");
|
||||
}
|
||||
}
|
||||
print("\n");
|
||||
////////////////////////////////////////////
|
||||
Program wrProg = {0};
|
||||
wrProg.header.countRepeat = 0x11;
|
||||
wrProg.header.options = 0x22;
|
||||
wrProg.header.shotCount = 0x33;
|
||||
memset(&wrProg.shots, 0x44, sizeof(wrProg.shots));
|
||||
|
||||
|
||||
for (int i = 0; i < MAX_PROGRAM_COUNT; ++i){
|
||||
|
||||
}
|
||||
////////////////////////////////////////////
|
||||
for (int i = 0; i < MAX_MACRO_COUNT; ++i){
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case IR_FRONT_MID:
|
||||
break;
|
||||
sound_play_note((Note_t){0, 0, 50},3);
|
||||
EEPROM_EARSE();
|
||||
// {
|
||||
// uint8_t i2c_address;
|
||||
// HAL_StatusTypeDef result;
|
||||
//
|
||||
@ -237,55 +316,57 @@ void IR_Home_Process() {
|
||||
// }
|
||||
break;
|
||||
|
||||
case IR_FRONT_LEFT: {
|
||||
// uint8_t buf[1024]; // Буфер для чтения данных размером 128 байт
|
||||
// uint16_t blockAddr16 = START_ADR_MACRO; // Начальный адрес EEPROM
|
||||
// uint8_t blockAddr[2] = { (uint8_t) (blockAddr16 >> 8),
|
||||
// (uint8_t) (blockAddr16 & 0xFF) }; // Адрес в формате 2 байта
|
||||
// int max_attempts = 15; // Максимальное количество попыток для операции
|
||||
// int attempts = 0; // Счетчик попыток
|
||||
// HAL_StatusTypeDef status;
|
||||
//
|
||||
// do {
|
||||
// // Отправляем адрес в EEPROM
|
||||
// status = HAL_I2C_Master_Transmit(&hi2c1, (AT24C_ADRESS << 1),
|
||||
// blockAddr, 2, 1000);
|
||||
// if (status != HAL_OK) {
|
||||
// HAL_Delay(1); // Задержка перед повтором
|
||||
// attempts++;
|
||||
// continue; // Переход к следующей попытке
|
||||
// }
|
||||
//
|
||||
// HAL_Delay(1); // Небольшая задержка
|
||||
//
|
||||
// // Читаем 128 байт данных из EEPROM
|
||||
// status = HAL_I2C_Master_Receive(&hi2c1, (AT24C_ADRESS << 1) | 1,
|
||||
// buf, sizeof(buf), 1000);
|
||||
// if (status == HAL_OK) {
|
||||
// // Данные успешно считаны, выводим их
|
||||
// char buffer[16];
|
||||
// for (int i = 0; i < sizeof(buf); ++i) {
|
||||
// if (i % 8 == 0)
|
||||
// print(" ");
|
||||
// if (i % 32 == 0)
|
||||
// print("\n");
|
||||
//
|
||||
// snprintf(buffer, sizeof(buffer), "%02X ", buf[i]); // Преобразуем байт в шестнадцатеричную строку
|
||||
// CDC_Transmit_FS((uint8_t*) buffer, strlen(buffer));
|
||||
// }
|
||||
// break; // Выход из попыток, если чтение успешно
|
||||
// } else {
|
||||
// print("Read Error EEPROM\n");
|
||||
// HAL_Delay(1); // Задержка перед повтором
|
||||
// attempts++;
|
||||
// }
|
||||
// } while (attempts < max_attempts);
|
||||
//
|
||||
// if (status != HAL_OK) {
|
||||
// print("Failed to read EEPROM after multiple attempts\n");
|
||||
// }
|
||||
// print("\n\n\n");
|
||||
// }
|
||||
case IR_FRONT_LEFT:
|
||||
break;
|
||||
{
|
||||
uint8_t buf[1024]; // Буфер для чтения данных размером 128 байт
|
||||
uint16_t blockAddr16 = START_ADR_SHOT; // Начальный адрес EEPROM
|
||||
uint8_t blockAddr[2] = { (uint8_t) (blockAddr16 >> 8),
|
||||
(uint8_t) (blockAddr16 & 0xFF) }; // Адрес в формате 2 байта
|
||||
int max_attempts = 15; // Максимальное количество попыток для операции
|
||||
int attempts = 0; // Счетчик попыток
|
||||
HAL_StatusTypeDef status;
|
||||
|
||||
do {
|
||||
// Отправляем адрес в EEPROM
|
||||
status = HAL_I2C_Master_Transmit(&hi2c1, (AT24C_ADRESS << 1),
|
||||
blockAddr, 2, 1000);
|
||||
if (status != HAL_OK) {
|
||||
HAL_Delay(1); // Задержка перед повтором
|
||||
attempts++;
|
||||
continue; // Переход к следующей попытке
|
||||
}
|
||||
|
||||
HAL_Delay(1); // Небольшая задержка
|
||||
|
||||
// Читаем 128 байт данных из EEPROM
|
||||
status = HAL_I2C_Master_Receive(&hi2c1, (AT24C_ADRESS << 1) | 1,
|
||||
buf, sizeof(buf), 1000);
|
||||
if (status == HAL_OK) {
|
||||
// Данные успешно считаны, выводим их
|
||||
char buffer[16];
|
||||
for (int i = 0; i < sizeof(buf); ++i) {
|
||||
if (i % 8 == 0)
|
||||
print(" ");
|
||||
if (i % 32 == 0)
|
||||
print("\n");
|
||||
|
||||
snprintf(buffer, sizeof(buffer), "%02X ", buf[i]); // Преобразуем байт в шестнадцатеричную строку
|
||||
CDC_Transmit_FS((uint8_t*) buffer, strlen(buffer));
|
||||
}
|
||||
break; // Выход из попыток, если чтение успешно
|
||||
} else {
|
||||
print("Read Error EEPROM\n");
|
||||
HAL_Delay(1); // Задержка перед повтором
|
||||
attempts++;
|
||||
}
|
||||
} while (attempts < max_attempts);
|
||||
|
||||
if (status != HAL_OK) {
|
||||
print("Failed to read EEPROM after multiple attempts\n");
|
||||
}
|
||||
print("\n\n\n");
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Reference in New Issue
Block a user