gravl4 0 June 27, 2025 Posted June 27, 2025 · Report post Нужен embedder, который понимает и реализовывал управление FOC электромоторами IM, PMSM с применением HFI. Опыт свой! не кодогенератор из MatLAB или библиотека готовая от texas. Проект интересный, буду рад поработать с профи. Реализация целочисленная на Cortex-M4. Ответы в формате "Я могу"" уходят автоматом в утиль. Просьба раскрывать свой реальный опыт (фото видео графики схемы формулы, что то материальное). www.vauag.ru - для связи. для тех кто в теме приводов, можете пользоваться :))) https://gitflic.ru/project/gravl4/vaumototool Quote Share this post Link to post Share on other sites More sharing options...
jcxz 361 June 27, 2025 Posted June 27, 2025 · Report post 1 час назад, gravl4 сказал: для тех кто в теме приводов, можете пользоваться :))) https://gitflic.ru/project/gravl4/vaumototool Посмотрели и... на 1-й же странице увидели некий странный код: Расчет CS по всем байтам начиная с 0x5533: uint16_t checksum(uint8_t *ptr, uint16_t len) { uint32_t sum = 0; while(len > 0) { sum += (uint16_t) (((uint32_t)*ptr<<8) |*(ptr+1)); ptr+=2; //переходим еще на 16 бит len-=2; // } if (len) sum+=((uint32_t)*ptr)<<8; while(sum>>16) sum = (uint16_t)sum+(sum>>16); return ~((uint16_t)sum); //сдесь мы переобразовали к виду big endian и сделали побитовую инверсию } При нечётной len он будет читать из ptr на 2 байта больше длины len, а если len может быть только чётным - содержит бессмысленные строки/операции: "if (len) sum+=((uint32_t)*ptr)<<8;" Это уже не говоря о неоптимальности этого кода: "sum += (uint16_t) (((uint32_t)*ptr<<8) |*(ptr+1));" на заявленном Cortex-M4 лучше заменить на: "sum += __REV16(*(uint16_t *)ptr);" = 3 команды вместо 4-х "while(sum>>16) sum = (uint16_t)sum+(sum>>16);" лучше заменить на: "sum = (uint16_t)sum + (sum >> 16); sum = (uint16_t)sum + (sum >> 16);" - на CM4 это в сумме = 4 команды - оптимальнее цикла в любом случае. 1 час назад, gravl4 сказал: Реализация целочисленная на Cortex-M4. Ответы в формате "Я могу"" Я могу. И делал. И для этого нужно уметь оптимально писать. Оптимально для целевой платформы (CM4). См.выше. PS: А то объявление напоминает: "Ищеца граматный чилавек, в камманду граматных песаталей на рузкомм языке." 1 Quote Share this post Link to post Share on other sites More sharing options...