1. Список говнокодов пользователя ykypeHHbIu_nemyx

    Всего: 2

  2. C# / Говнокод #25712

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    /* Infinite loop */
      /* USER CODE BEGIN WHILE */
      while (1)
      {
        Master_Slave_Check();
        if (CtrlBrd_Mode == 1) //MasterMode
        {
          SSPC_Check_Proc();      
          Read_ADC();
          Logic();
          RS_Enable();
          Obmen_RS();
          //CAN_Enable();
          //Obmen_CAN();
          
          //if (SoftFlag.Flag1.bit.History_Wr_Req)
          //{
          //  SoftFlag.Flag1.bit.History_Wr_Req = 0;
          //  Write_History();
          //}
          
          HAL_IWDG_Refresh(&hiwdg);	//Dog reset
          
          Migalka();    //Working LED blink
        }
        else if (CtrlBrd_Mode == 0) //SlaveMode
        {
          Slave_DeInit();
          while(1)
          {
            Master_Slave_Check();
            if (CtrlBrd_Mode == 1)    //если плата снова стала мастером, когда сдох основной мастер,
              HW_RESET();             //делаем аппаратный сброс для перезапуска (нога выставляется в 1, отпирает транзюк VT9, который садит на землю вход управления тракой)
            HAL_IWDG_Refresh(&hiwdg);	//Dog reset
            Migalka();
          }
        }
      }
      /* USER CODE END WHILE */
    }

    Так реализовал параллельную работу двух одинаковых плат управления, одна из которых висит в режиме ожидания.

    ykypeHHbIu_nemyx, 10 Июля 2019

    Комментарии (70)
  3. C# / Говнокод #25711

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    void Obmen_RS1(void)
    {
      uint8_t txbuf[7], rxbuf[43], CheckSum;
      //если сформирован запрос на чтение по RS1 - SSPC data
      if (SoftFlag.RS_Flag3.bit.RS1_Read_Req)
      {
        txbuf[0] = 0x7B; //{
        txbuf[1] = SSPC_Addr_RS[RS1_Counter];
        txbuf[2] = 0x00; //d0, b00000000 - команда для формирования и отправки посылки данных от SSPC
        txbuf[3] = 0x00;
        txbuf[4] = 0x00;
        txbuf[5] = txbuf[1];//(txbuf[1] ^ txbuf[2] ^ txbuf[3] ^ txbuf[4]); //xor [1..4]
        txbuf[6] = 0x7D; //}
        HAL_UART_Transmit(&huart1, (uint8_t *)&txbuf, 7, 1);
        //HAL_Delay(1)
        if (HAL_UART_Receive(&huart1, (uint8_t *)&rxbuf, 43, 9) == HAL_OK)
        { //если пришел правильный пакет
          if ((rxbuf[0] == 0x5B) 
           && (rxbuf[40] == SSPC_Addr_RS[RS1_Counter])
           && (rxbuf[42] == 0x5D))
          { //считаем КС
            for (j = 1; j < 41; j++)
              CheckSum ^= rxbuf[j];
            if (CheckSum == rxbuf[41])  //Если КС совпадает
            {
              for (j = 1; j < 41; j++)  //Сохраняем пакет в двумерный буфер
                RS1_Paket[RS1_Counter][j] = rxbuf[j];
            }
            else 
            {
              for (j = 1; j < 41; j++)
                RS1_Paket[RS1_Counter][j] = 0;  //Иначе пишем нули
            }
          }
        }
        RS1_Counter++;
        if (RS1_Counter > 15) 
          RS1_Counter = 0;
        SoftFlag.RS_Flag3.bit.RS1_Read_Req = 0; //сбрасываем флаг запроса чтения данных и ждем следующего по таймеру (100мс)
      }
    }

    Процедура чтения данных от 16 модулей управления нагрузками по RS-485...
    для STM32F4x с использованием калокуба

    ykypeHHbIu_nemyx, 10 Июля 2019

    Комментарии (4)