ну зачем сразу прерывание, да ещё и на каждый бит,
это же ардуина :)
// Write each of the 8 bits
for (uint8_t i = 8; i > 0; --i)
{
if (b & 1) // choose bit
*reg |= reg_mask; // send 1
else
*reg &= inv_mask; // send 0
tunedDelay(delay);
b >>= 1;
}
приём так же, только с tunedDelay(_rx_delay_centering); для паузы на полтора бита после внешнего io прерывания на старт бит.
putty это ssh, и вообще plink для туннелей в первую очередь.
с железками через последовательный порт у меня общаются в основном различные скрипты, руками подключаться приходится только для проверки работоспособности, проверить что с данными настройками порта железка отзывается на условный *IDN? (некоторым древним железякам надо ещё RTS/DTR обязательно подёргать чтоб ожили), так что минималистичный termite более чем устраивает
закладывать в железку всякие \033[38;2;255;82;197;48;2;155;106;0mHello чтобы оно только в определённых терминалах отображалось - имхо какая-то дичь.
Там не в сколько в катушке дело, а в том что у сердечника в виде стержня обратные магнитные поля в основном через воздух идут и соответственно эффективная проницаемость снижается на порядок-другой. Что для антенны как раз так и надо, иначе замкнутый сердечник будет не особо чувствителен к внешним полям, но для рассчёта индуктивности надо учитывать
Из отдельных сенсоров (tmag5273 / tmag3001) получается заметно дешевле в центах/пиксель чем швейцарский интегрированный датчик, но шаг конечно совсем не 0.1мм да и сами датчики калибровать надо, иначе там разброс до 10 процентов по чувствительности ну и диапазон всего 0.25Тл
не всегда, от точности зависит. Есть линейные подвижки от ньюпорта с их же родным контроллером, десяток мм/с и микронные точности позиционирования в "статике", но в "динамике" видно что не справляются, что там внутри хз, но какие-то несколько кГц цикла заявлены.
ну и "EtherCAT ≠ Beckhoff" в статье конечно пример хороший приведён, но в целом с аналогами twinCATа как-то довольно печально имхо.
Хорошо, пусть step импульсы генерятся пачками снаружи, но если у нас 1мс, и те самые 50мкм на 50мм/c между измерениями положения и соответственно до команды на следующую пачку импульсов, на какую ошибку траектории тогда можно рассчитывать. 50мкм? Да, есть feedforward и с идеальной механикой можно и без обратной связи по линейному энкодеру жить, но если механика говно, то чтобы её регулятором держать по энкодеру где положено разве не надо чтобы "период" регулятора помноженный на максимальную скорость соответствовал ошибке?
возможно глупый вопрос, но если приводы "умные", которым надо только сказать куда ехать и с какой скоростью и энкодер с pid регулятором "внутри", то зачем им именно собственно езеркат (ну разве что для синхронизации часов у нескольких осей, но наверное должен быть и ряд других способов). А если тупые - (а-ля условный linuxCNC / LPT / Mesa) step/dir драйвер шаговика в i/o клемму и чтение обратно энкодера через езеркат, то вроде как 1мс это не сказать что сильно уж быстро, чтобы этот регулятор в ПК вынести, да и просто для step/dir маловато 1кГц?
Судя по виду меди на фотографиях - последовательная шлифовка слой за слоем, а учитывая что медь там 100мкм, а не 18 как обычно, промахнуться довольно сложно.
Датчики влажности (они вроде бы емкостные) имеют нехорошее свойство нанюхаться чего-нибудь и начать показывать "погоду" :) причём необратимо. Просто полежали в комнате даже не особо рядом где какой-то эпоксидкой что-то клеили - всё, пожалуйте бриться, показания просто случайные значения.
Ну и зависимость от температуры при 23 градусах 20.6гр/m^3, при 24 - 21.8. то есть 1 градус ошибки температуры - 6% ошибки влажности.
выхлоп на пару мегабайт получается, для helloworlda с миганием светодиодом ещё можно руками пару регистров переписать, не ошибившись при этом, но вообще так делать не надо. Плюс стуктуры/енумы, в отличии от макросов, частично на компилятор перекладывают проверку типов, и не позволят, например, случайно записать 32 бита куда надо только 16. Если бы ещё язык позволял без костылей анонимные юнионы битовых полей c енумами, не позволяя писать "чужие" значения было бы совсем красиво, но хотя бы так.
точно так же https://github.com/arduino/ArduinoCore-avr/blob/11b9130371e8447920edb65a75706a6c951e51fc/libraries/SoftwareSerial/src/SoftwareSerial.cpp#L158
з.ы. пояснение для дебилов: это код из их официальной библиотеки.
https://github.com/arduino/ArduinoCore-avr/blob/master/libraries/SoftwareSerial/src/SoftwareSerial.cpp
ну зачем сразу прерывание, да ещё и на каждый бит,
это же ардуина :)
приём так же, только с tunedDelay(_rx_delay_centering); для паузы на полтора бита после внешнего io прерывания на старт бит.
putty это ssh, и вообще plink для туннелей в первую очередь.
с железками через последовательный порт у меня общаются в основном различные скрипты, руками подключаться приходится только для проверки работоспособности, проверить что с данными настройками порта железка отзывается на условный *IDN? (некоторым древним железякам надо ещё RTS/DTR обязательно подёргать чтоб ожили), так что минималистичный termite более чем устраивает
закладывать в железку всякие
\033[38;2;255;82;197;48;2;155;106;0mHelloчтобы оно только в определённых терминалах отображалось - имхо какая-то дичь.он захлёбывался от непрерывного потока данных даже на 115200
можно наверное найти какую-нибудь ещё более корявую терминалку, которая даже 7 бит не умеет, но зачем?
просто напечатать в stdout?
но если месье знает толк в извращениях, то
float.c:
main.c:
15 лет назад скайрим ну вот совсем не так выглядел...
было бы куда интереснее посмотреть чтобы он там дорисовал к совсем оригинальному скариму или gta3sa :)
Там не в сколько в катушке дело, а в том что у сердечника в виде стержня обратные магнитные поля в основном через воздух идут и соответственно эффективная проницаемость снижается на порядок-другой. Что для антенны как раз так и надо, иначе замкнутый сердечник будет не особо чувствителен к внешним полям, но для рассчёта индуктивности надо учитывать
какой-то калькулятор: https://fair-rite.com/rod-permeability-calculator/
Из отдельных сенсоров (tmag5273 / tmag3001) получается заметно дешевле в центах/пиксель чем швейцарский интегрированный датчик, но шаг конечно совсем не 0.1мм да и сами датчики калибровать надо, иначе там разброс до 10 процентов по чувствительности ну и диапазон всего 0.25Тл
за идею и реализацию 5+
f4.exe 85’200’384 bytes, но там электрон внутри ещё что ли где-то спрятался?
не всегда, от точности зависит. Есть линейные подвижки от ньюпорта с их же родным контроллером, десяток мм/с и микронные точности позиционирования в "статике", но в "динамике" видно что не справляются, что там внутри хз, но какие-то несколько кГц цикла заявлены.
ну и "EtherCAT ≠ Beckhoff" в статье конечно пример хороший приведён, но в целом с аналогами twinCATа как-то довольно печально имхо.
Хорошо, пусть step импульсы генерятся пачками снаружи, но если у нас 1мс, и те самые 50мкм на 50мм/c между измерениями положения и соответственно до команды на следующую пачку импульсов, на какую ошибку траектории тогда можно рассчитывать. 50мкм? Да, есть feedforward и с идеальной механикой можно и без обратной связи по линейному энкодеру жить, но если механика говно, то чтобы её регулятором держать по энкодеру где положено разве не надо чтобы "период" регулятора помноженный на максимальную скорость соответствовал ошибке?
возможно глупый вопрос, но если приводы "умные", которым надо только сказать куда ехать и с какой скоростью и энкодер с pid регулятором "внутри", то зачем им именно собственно езеркат (ну разве что для синхронизации часов у нескольких осей, но наверное должен быть и ряд других способов). А если тупые - (а-ля условный linuxCNC / LPT / Mesa) step/dir драйвер шаговика в i/o клемму и чтение обратно энкодера через езеркат, то вроде как 1мс это не сказать что сильно уж быстро, чтобы этот регулятор в ПК вынести, да и просто для step/dir маловато 1кГц?
Судя по виду меди на фотографиях - последовательная шлифовка слой за слоем, а учитывая что медь там 100мкм, а не 18 как обычно, промахнуться довольно сложно.
Знаменитая функция
Q_rsqrtиз Quake III выглядит следующим образом:без оригинальных комментариев как-то немного не то.
Датчики влажности (они вроде бы емкостные) имеют нехорошее свойство нанюхаться чего-нибудь и начать показывать "погоду" :) причём необратимо. Просто полежали в комнате даже не особо рядом где какой-то эпоксидкой что-то клеили - всё, пожалуйте бриться, показания просто случайные значения.
Ну и зависимость от температуры при 23 градусах 20.6гр/m^3, при 24 - 21.8. то есть 1 градус ошибки температуры - 6% ошибки влажности.
развесистой периферии нынче сильно много всякой стало
SVDConv rp2040.svd --generate=header --fields=struct --fields=enum
выхлоп на пару мегабайт получается, для helloworlda с миганием светодиодом ещё можно руками пару регистров переписать, не ошибившись при этом, но вообще так делать не надо. Плюс стуктуры/енумы, в отличии от макросов, частично на компилятор перекладывают проверку типов, и не позволят, например, случайно записать 32 бита куда надо только 16. Если бы ещё язык позволял без костылей анонимные юнионы битовых полей c енумами, не позволяя писать "чужие" значения было бы совсем красиво, но хотя бы так.
#define GPIO_BASE 0x40014000
rp2040.svd всё-таки можно было из SDK и позаимствовать.
С целочисленными множителем вроде бы должно быть лучше чем с дробным