>> MuteCRT (MuteCRT) писал (а) в ответ на сообщение:
>>> pietarilaine (25915) писал (а) в ответ на сообщение:
>>>> На каких языках пишешь? >>> Я на Си и С++ для контроллеров пишу. Программирую CodeSYS для контроллеров Овен. В Siematic меня фины пока не пускают. quoted3
>>Что-то ты в прошлый раз про СИ не упоминал… Все сплошь какие-то приблуды специфические были… >> И мне интересно как это ты на СИ прошивки пишешь? quoted2
>В данный момент я ковыряю STM32L476. > > > ********* (раскрыть)#include «MyFileFunctions.h» > //-------------------------------------- ---------------------------------------- --------------------- > unsigned int UNFMount (void) // > { // > return (f_mount (&SDFatFs, (TCHAR const*)SDPath, 0) == FR_OK); //Возвращаем 1 при успехе! > } // > //-------------------------------------- ---------------------------------------- --------------------- > unsigned int FMount (void) // > { // > if (ISSDCardOUT) {return 0;} //Если нет SD карты > return (f_mount (&SDFatFs, (TCHAR const*)SDPath, 1) == FR_OK); //Возвращаем 1 при успехе! > } // > //-------------------------------------- ---------------------------------------- --------------------- > unsigned int ReadOutFile (void) //Чтение файла с выводом на дисплей > { // > FRESULT res; // > char FnameBuf[15]; //Для имен файлов > char readBuff[128]; //Буфер для чтения содержимого файла > unsigned int Error = 0, bytesRead; // > if (ISSDCardOUT) {return 0;} //Если нет SD карты > sprintf (FnameBuf, «myfile%d.txt», NumberFile); //Распечатка в буфер имени файла в формате myfileXX. txt > res = f_open (&MyFile, FnameBuf, FA_READ); // > if (res) {Error |= 2; return Error;} //2 — ошибка открытия файла на чтение > res = f_read (&MyFile, readBuff, sizeof (readBuff)-1, &bytesRead); // > if (res) {Error |= 4; return Error;} //4 — ошибка чтения файла > readBuff[bytesRead] = '\0'; //Признак конца строки > sprintf (S_buffer,"%s", readBuff); // > drawString (S_buffer, 0, 10, 0×07FF, 0, 1); // > res = f_close (&MyFile); // > if (res) {Error |= 8; return Error;} //8 — ошибка закрытия файла > return Error; // > } // > //-------------------------------------- ---------------------------------------- --------------------- > unsigned int WriteLog (void) // > { // > FRESULT res; // > char FnameBuf[15]; //Для имен файлов > unsigned int Error = 0, byteswritten; //Аккумулятор ошибок > if (ISSDCardOUT) {return 0;} //Если нет SD карты > sprintf (FnameBuf, «myfile%d.txt», NumberFile); //Распечатка в буфер имени файла в формате myfileXX. txt > //f_open > if (NewFile) //Если открывается новый файл, он должен быть с флагом FA_CREATE_NEW > { // > res = f_open (&MyFile, FnameBuf, FA_WRITE | FA_CREATE_NEW); // > //Записать в файл заданный текст. Диагностики нет > if (res) {Error |= 1; return Error;} //1 — ошибка открытия нового файла if (NewFile) > int size = sprintf (S_buffer,"Test \n русский %d", NumberFile);//Запись заголовка > res = f_write (&MyFile, S_buffer, size, (void*)&byteswritten);// > if (res) {Error |= 2; return Error;} //2 — ошибка записи заголовка в новый файл > NewFile = 0; //Флаг нового файла > } // > else //Если открывается старый файл > { // > res = f_open (&MyFile, FnameBuf, FA_WRITE | FA_OPEN_EXISTING);// > if (res) {Error |= 4; return Error;} //4 — ошибка открытия старого файла на запись FA_WRITE | FA_OPEN_EXISTING > } // > //f_lseek > res = f_lseek (&MyFile, f_size (&MyFile)); // > if (res) {Error |= 8; return Error;} //8 — ошибка функции f_lseek > if (f_size (&MyFile) > 10000000) {NumberFile++; NewFile = 1;} //Ограничение по длине файла — в следующем вызове откроется другой файл > //f_write > int size = sprintf (S_buffer,"Time: %d\r\n", HAL_GetTick ()); // > size = size — 1; // > res = f_write (&MyFile, S_buffer, size, (void*)&byteswritten); // > if (res) {Error |= 16; return Error;} //16 — ошибка записи строки лога > //закрытие файла > int ERR = f_printf (&MyFile, WR1); // > if (ERR == -1) {Error |= 32; return Error;} //32 — ошибка функции f_printf > ERR = f_puts (WR2, &MyFile); // > if (ERR == -1) {Error |= 64; return Error;} //64 — ошибка функции f_puts > //закрытие файла > res = f_close (&MyFile); // > if (res) {Error |= 128; return Error;} //32 — ошибка закрытия файла > return Error; // > } // > //-------------------------------------- ---------------------------------------- --------------------- > unsigned int WriteLogHead (void) // > { // > FRESULT res; // > char FnameBuf[15]; //Для имен файлов > unsigned int Error = 0, byteswritten; //Аккумулятор ошибок > if (ISSDCardOUT) {return 0;} //Если нет SD карты > int i; //Счетчик существующих файлов > for (i = 2; i < 100; i++) //Перебор по именам файлов > { // > IWDG->KR = 0xAAAA; //Refresh WatchDog counter value > sprintf (FnameBuf, «myfile%d.txt», i); //Распечатка в буфер имени файла в формате myfileXX. txt > res = f_open (&MyFile, FnameBuf, FA_CREATE_NEW | FA_WRITE); //Попытка открыть файл на запись. Если файл существует, будет res = ERR > if (res == FR_OK) //Если файла в директории нет и он открылся > { // > NumberFile = i; //Запомнить номер файла > sprintf (S_buffer,"Make File %s", FnameBuf); //Вывод имени файла > drawString (S_buffer, 0, 0, 0×07FF, 0, 1); // > break; // > } // > else //Если файл в директории есть и он не открылся > { // > sprintf (S_buffer,"Error Open %s", FnameBuf); //Вывод имени файла > drawString (S_buffer, 0, 0, 0×07FF, 0, 1); // > Display (); // > HAL_Delay (300); // > } // > } // > //Записать в файл заданный текст. > int size = sprintf (S_buffer,"Test русский"); // > res = f_write (&MyFile, S_buffer, size, (void*)&byteswritten); // > //Проверить на качество выполненной задачи. > if ((byteswritten ≠ size) || (res ≠ FR_OK)) //1 — ошибка записи заголовка в файл > { // > Error |= 1; // > return Error; // > } // > //Закрытие файла > res = f_close (&MyFile); // > if (res) {Error |= 2; return Error;} //2 — ошибка закрытия файла > return Error; // > }
> //-------------------------------------- ---------------------------------------- --------------------- > > Вот так и пишу. quoted1
>>> Провинциал (МихалычЯ) писал (а) в ответ на сообщение: >>>> MuteCRT (MuteCRT) писал (а) в ответ на сообщение: >>>>> Провинциал (МихалычЯ) писал (а) в ответ на сообщение: >>>>>> MuteCRT (MuteCRT) писал (а) в ответ на сообщение: >>>>>>> Провинциал (МихалычЯ) писал (а) в ответ на сообщение: >>>>>>>> MuteCRT (MuteCRT) писал (а) в ответ на сообщение: >>>>>>>>> Провинциал (МихалычЯ) писал (а) в ответ на сообщение: >>>>>>>>>> MuteCRT (MuteCRT) писал (а) в ответ на сообщение: >>>>>>>>>>> Провинциал (МихалычЯ) писал (а) в ответ на сообщение: >>>>>>>>>>>> У нас же принято осесть на одном месте и ждать маны небесной попутно ругая власть. >>>>>>>>>>>> Я не даром тебе ссылку кинул. Почти 8000 вакансий только по Воронежу. >>>>>>>>>>>> Как думаешь, стоит переехать из Кодинска в Воронеж? >>>>>>>>>>> А ты посчитай. Сколько человек годов будет работать в Воронеже чисто на квартиру? >>>>>>>>>> Не много. У нас цены не московские. А если учесть то, что он продаст в своем Кодинске, то и ещё меньше. >>>>>>>>> В Кодинске вторичка 400тыр примерно. Сколько доплачивать? >>>>>>>> За что доплачивать? Однушка, двушка? >>>>>>> Двушка. Там же дочь. >>>>>> Смотря в каком районе и в каком доме. >>>>>> https://www.avito.ru/voronezh/kvartiry/prodam/2-...
>>>>> Да блин, самое дешевое жилье. Скока? Двушка. В любом районе. >>>> 1500. >>> Лям доплаты где взять? Про импотеку — ни слова. quoted3
>>Заработать, конечно… Сначала снимать, потом купить. quoted2
>Снимать это потери тысяч 200 в год -та же импотека. quoted1
Ну, а как ты хотел? Зато оба родителя смогут полноценно работать и зарабатывать.
>> MuteCRT (MuteCRT) писал (а) в ответ на сообщение:
>>> setver (setver) писал (а) в ответ на сообщение: >>>> вопрос — зачем там работает инженер, да еще с финским образованием, если можно нанять любого, ну нафига он учился у финов то?
>>> Можно. На этой дури и зарабатывает фирма, на которую я работаю. На поломках котлов, обвалах обмуровки и прочего из — за неумения управлять и следить за оборудованием. Десятки миллионов потерь. Просто начальство это не связывает с качеством персонала. Никак. Как у детей — отсутствуют причинно — следственные связи. quoted3
>>ага вышли на причину, виновато не государство оказывается, а конкретные начальники — работодатели которые не петрят в своей управленческой работе ни фига…. >>
>> тогда вопрос почему работник не проведет с начальством беседу и не расскажет с примерами сколько он им бабла экономит и сколько они потеряют если его не будет? quoted2
> > Для этого вообще то существуют профсоюзы, но в РФ такое законодательство что профсоюзы не имеют реальной силы и прав. > Но права не дают, их берут силой. quoted1
ну дак в чем проблема берите….
если нет профсоюза чел сам может сходить на переговоры с начальством, объяснить что зп маленькая и ему не хватает на жизнь, если он уникален то подымут….
> XXVector (XXVector) писал (а) в ответ на сообщение:
>> MuteCRT (MuteCRT) писал (а) в ответ на сообщение:
>>> Бедность будет до тех пор, пока капиталисты на местах за работу платят копейки. quoted3
>> >> Так ведь они всегда будут стараться платить копейки, в идеале только на воспроизводство рабочей силы. Им ведь нужно максимизировать прибавочную стоимость. Это Карл Маркс ещё отмечал. Капиталист-филантроп сам вылетит в трубу, не выдержав конкуренции со своими более «зубастыми» коллегами quoted2
>Капитализм в чистом виде не может существовать в России. Ибо капиталист — скорее всего либо бандит с 90-х, либо холоп как Сечин. quoted1
Тем не менее это не отменяет принадледность данных персонажей к буржуазному классу. Сечин , правда, не капиталист, — он приказчик. Владельцы это акционеры Роснефти, в том числе ротшильдовская Бритиш Петролиум кстати
>>> MuteCRT (MuteCRT) писал (а) в ответ на сообщение: >>>> pietarilaine (25915) писал (а) в ответ на сообщение: >>>>> На каких языках пишешь?
>>>> Я на Си и С++ для контроллеров пишу. Программирую CodeSYS для контроллеров Овен. В Siematic меня фины пока не пускают. >>> Что-то ты в прошлый раз про СИ не упоминал… Все сплошь какие-то приблуды специфические были… >>> И мне интересно как это ты на СИ прошивки пишешь? quoted3
>>В данный момент я ковыряю STM32L476. >> >> > ********* (раскрыть)#include «MyFileFunctions.h» >> //-------------------------------------- ---------------------------------------- --------------------- >> unsigned int UNFMount (void) // >> { // >> return (f_mount (&SDFatFs, (TCHAR const*)SDPath, 0) == FR_OK); //Возвращаем 1 при успехе! >> } // >> //-------------------------------------- ---------------------------------------- --------------------- >> unsigned int FMount (void) // >> { // >> if (ISSDCardOUT) {return 0;} //Если нет SD карты >> return (f_mount (&SDFatFs, (TCHAR const*)SDPath, 1) == FR_OK); //Возвращаем 1 при успехе! >> } // >> //-------------------------------------- ---------------------------------------- --------------------- >> unsigned int ReadOutFile (void) //Чтение файла с выводом на дисплей >> { // >> FRESULT res; // >> char FnameBuf[15]; //Для имен файлов >> char readBuff[128]; //Буфер для чтения содержимого файла >> unsigned int Error = 0, bytesRead; // >> if (ISSDCardOUT) {return 0;} //Если нет SD карты >> sprintf (FnameBuf, «myfile%d.txt», NumberFile); //Распечатка в буфер имени файла в формате myfileXX. txt >> res = f_open (&MyFile, FnameBuf, FA_READ); // >> if (res) {Error |= 2; return Error;} //2 — ошибка открытия файла на чтение >> res = f_read (&MyFile, readBuff, sizeof (readBuff)-1, &bytesRead); // >> if (res) {Error |= 4; return Error;} //4 — ошибка чтения файла >> readBuff[bytesRead] = '\0'; //Признак конца строки >> sprintf (S_buffer,"%s", readBuff); // >> drawString (S_buffer, 0, 10, 0×07FF, 0, 1); // >> res = f_close (&MyFile); // >> if (res) {Error |= 8; return Error;} //8 — ошибка закрытия файла >> return Error; // >> } // >> //-------------------------------------- ---------------------------------------- --------------------- >> unsigned int WriteLog (void) // >> { // >> FRESULT res; // >> char FnameBuf[15]; //Для имен файлов >> unsigned int Error = 0, byteswritten; //Аккумулятор ошибок >> if (ISSDCardOUT) {return 0;} //Если нет SD карты >> sprintf (FnameBuf, «myfile%d.txt», NumberFile); //Распечатка в буфер имени файла в формате myfileXX. txt >> //f_open >> if (NewFile) //Если открывается новый файл, он должен быть с флагом FA_CREATE_NEW >> { // >> res = f_open (&MyFile, FnameBuf, FA_WRITE | FA_CREATE_NEW); // >> //Записать в файл заданный текст. Диагностики нет >> if (res) {Error |= 1; return Error;} //1 — ошибка открытия нового файла if (NewFile) >> int size = sprintf (S_buffer,"Test \n русский %d", NumberFile);//Запись заголовка >> res = f_write (&MyFile, S_buffer, size, (void*)&byteswritten);// >> if (res) {Error |= 2; return Error;} //2 — ошибка записи заголовка в новый файл >> NewFile = 0; //Флаг нового файла >> } // >> else //Если открывается старый файл >> { // >> res = f_open (&MyFile, FnameBuf, FA_WRITE | FA_OPEN_EXISTING);// >> if (res) {Error |= 4; return Error;} //4 — ошибка открытия старого файла на запись FA_WRITE | FA_OPEN_EXISTING >> } // >> //f_lseek >> res = f_lseek (&MyFile, f_size (&MyFile)); // >> if (res) {Error |= 8; return Error;} //8 — ошибка функции f_lseek >> if (f_size (&MyFile) > 10000000) {NumberFile++; NewFile = 1;} //Ограничение по длине файла — в следующем вызове откроется другой файл >> //f_write >> int size = sprintf (S_buffer,"Time: %d\r\n", HAL_GetTick ()); // >> size = size — 1; // >> res = f_write (&MyFile, S_buffer, size, (void*)&byteswritten); // >> if (res) {Error |= 16; return Error;} //16 — ошибка записи строки лога >> //закрытие файла >> int ERR = f_printf (&MyFile, WR1); // >> if (ERR == -1) {Error |= 32; return Error;} //32 — ошибка функции f_printf >> ERR = f_puts (WR2, &MyFile); // >> if (ERR == -1) {Error |= 64; return Error;} //64 — ошибка функции f_puts >> //закрытие файла >> res = f_close (&MyFile); // >> if (res) {Error |= 128; return Error;} //32 — ошибка закрытия файла >> return Error; // >> } // >> //-------------------------------------- ---------------------------------------- --------------------- >> unsigned int WriteLogHead (void) // >> { // >> FRESULT res; // >> char FnameBuf[15]; //Для имен файлов >> unsigned int Error = 0, byteswritten; //Аккумулятор ошибок >> if (ISSDCardOUT) {return 0;} //Если нет SD карты >> int i; //Счетчик существующих файлов >> for (i = 2; i < 100; i++) //Перебор по именам файлов >> { // >> IWDG->KR = 0xAAAA; //Refresh WatchDog counter value >> sprintf (FnameBuf, «myfile%d.txt», i); //Распечатка в буфер имени файла в формате myfileXX. txt >> res = f_open (&MyFile, FnameBuf, FA_CREATE_NEW | FA_WRITE); //Попытка открыть файл на запись. Если файл существует, будет res = ERR >> if (res == FR_OK) //Если файла в директории нет и он открылся >> { // >> NumberFile = i; //Запомнить номер файла >> sprintf (S_buffer,"Make File %s", FnameBuf); //Вывод имени файла >> drawString (S_buffer, 0, 0, 0×07FF, 0, 1); // >> break; // >> } // >> else //Если файл в директории есть и он не открылся >> { // >> sprintf (S_buffer,"Error Open %s", FnameBuf); //Вывод имени файла >> drawString (S_buffer, 0, 0, 0×07FF, 0, 1); // >> Display (); // >> HAL_Delay (300); // >> } // >> } // >> //Записать в файл заданный текст. >> int size = sprintf (S_buffer,"Test русский"); // >> res = f_write (&MyFile, S_buffer, size, (void*)&byteswritten); // >> //Проверить на качество выполненной задачи. >> if ((byteswritten ≠ size) || (res ≠ FR_OK)) //1 — ошибка записи заголовка в файл >> { // >> Error |= 1; // >> return Error; // >> } // >> //Закрытие файла >> res = f_close (&MyFile); //
>>> MuteCRT (MuteCRT) писал (а) в ответ на сообщение:
>>>> Везде обслуга — бухгалтерия в шелках, к специалисты за копейки работают и периодически увольняются. Тупость. >>>> >>> А как ты хотел? Частная собственность на средства производства в действии. quoted3
>>Тогда эта проблема не решаема в принципе с таким строем. quoted2
>с любым строем, т.к. все люди разные и всегда кто-то где-то будет нищебродом…. quoted1
Не ну при СССР проблема с жильем как-то без решалась без ипотеки…
>> государство ежегодно на это тратит деньги на обучение профпереподготовку и подъемные…. >> >> что еще надо сделать чтобы люди взяли удочку и начали рыбачить? quoted2
>Уже объяснял. Уйдет человек рыбачить в офис. На его местто придет другой. И будет получать копейки. Бедность будет до тех пор, пока капиталисты на местах за работу платят копейки. quoted1
а платят копейки пока есть готовые на эту работу за копейки…. или я не прав?
Это кто же такие делает? Обычно в дымоходах ставят на 10 милибар. Оно конечно можно 20 мА настроить и на 0.25, но сами сенсоры на такой диапазон мне неизвестны.