Size: a a a

2020 June 19

22

2 2 in ru_ASUTP
источник

22

2 2 in ru_ASUTP
еще тут можно посомтреть  там есть различия для разных ревизий
источник

ZS

Zakir Supeyev in ru_ASUTP
Кто-нибудь портировал код из ардуино ide на питон? Как правильно организовать loop() - бесконечный while или какой то еще способ?
источник

DD

Davydov Denis in ru_ASUTP
Zakir Supeyev
Кто-нибудь портировал код из ардуино ide на питон? Как правильно организовать loop() - бесконечный while или какой то еще способ?
а питон на чем крутиться будет? скорее всего в полноценной ОС, поэтому бесконечный цикл там недопустим, тк сожрет почти все процессорное время... какой код вы хотите использовать? если какие-то алгоритмы, то там цикличность не нужна, если работать с периферией, то в питоне нужно для этого пользоваться средствами ОС
источник

DD

Davydov Denis in ru_ASUTP
бесконечный цикл имеет смысл использовать только там, где кроме него никто и не работает
источник

ZS

Zakir Supeyev in ru_ASUTP
Davydov Denis
а питон на чем крутиться будет? скорее всего в полноценной ОС, поэтому бесконечный цикл там недопустим, тк сожрет почти все процессорное время... какой код вы хотите использовать? если какие-то алгоритмы, то там цикличность не нужна, если работать с периферией, то в питоне нужно для этого пользоваться средствами ОС
Простая симуляция процесса на модбасе, уровня a+b в основном loop с записью результатов в модбас регистры
источник

DD

Davydov Denis in ru_ASUTP
Zakir Supeyev
Простая симуляция процесса на модбасе, уровня a+b в основном loop с записью результатов в модбас регистры
ну и обрабатывайте данные по приходу запроса на них, в остальное время ждите данные
источник

ZS

Zakir Supeyev in ru_ASUTP
Davydov Denis
ну и обрабатывайте данные по приходу запроса на них, в остальное время ждите данные
А фоновый процесс как реализуется? Процесс и без запросов должен работать
источник

DD

Davydov Denis in ru_ASUTP
Zakir Supeyev
А фоновый процесс как реализуется? Процесс и без запросов должен работать
что значит работать? для ОС он будет в режиме ожидания, по приохду данных ос запутит на нем обработку этих данных... или вы хотите в это время выполнять какую-то еще работу?
источник

ZS

Zakir Supeyev in ru_ASUTP
Davydov Denis
что значит работать? для ОС он будет в режиме ожидания, по приохду данных ос запутит на нем обработку этих данных... или вы хотите в это время выполнять какую-то еще работу?
Да, это же симуляция, на ардуино в лупе был процесс который складывал значения каждую итерацию, модбас считывал текущую сумму
источник

DD

Davydov Denis in ru_ASUTP
Zakir Supeyev
Да, это же симуляция, на ардуино в лупе был процесс который складывал значения каждую итерацию, модбас считывал текущую сумму
ну это выдуманная задача - бесполезная, придумайте реальную задачу, которую требуется решать, я подскажу как ее лучше реализовать
источник

ZS

Zakir Supeyev in ru_ASUTP
Davydov Denis
ну это выдуманная задача - бесполезная, придумайте реальную задачу, которую требуется решать, я подскажу как ее лучше реализовать
Для меня это реальная задача и мне нужен такой функционал
источник

DD

Davydov Denis in ru_ASUTP
если вам нужно все же число итераций между временными интервалами, то его можно расчитать через временные метки, не загружая на это время процессор бесполезной работой
источник

DD

Davydov Denis in ru_ASUTP
Zakir Supeyev
Для меня это реальная задача и мне нужен такой функционал
нормальная операционная система не даст вам постоянства итераций, оно будет плавать в зависимости от загруженности системы другими процессами, поэтому можно только примерно его вычислить, что легко сделать как я и сказал - через время
источник

ZS

Zakir Supeyev in ru_ASUTP
Davydov Denis
если вам нужно все же число итераций между временными интервалами, то его можно расчитать через временные метки, не загружая на это время процессор бесполезной работой
Дайте ключевые слова которые гуглить)))
источник

DD

Davydov Denis in ru_ASUTP
можно сделать и в бесконечном цикле как вы и хотите, но в таком случае может так случиться, что даже сама операционная система не сможет обрабатывать данные, поступающие на последовательный порт или сокет
источник

DD

Davydov Denis in ru_ASUTP
тк ей не будет хватать времени на эту задачу, вы все своим циклом скушаете
источник

DD

Davydov Denis in ru_ASUTP
Zakir Supeyev
Дайте ключевые слова которые гуглить)))
а что там гуглить, сохраняете метку времени последнего запроса, при новом запросе берете разницу между текущим временем и этим последним, результат умножаете на гигафлопсы вашего процессора, сохраняете текущую метку как последнюю и снова ждете следующий запрос
источник

ZS

Zakir Supeyev in ru_ASUTP
Davydov Denis
а что там гуглить, сохраняете метку времени последнего запроса, при новом запросе берете разницу между текущим временем и этим последним, результат умножаете на гигафлопсы вашего процессора, сохраняете текущую метку как последнюю и снова ждете следующий запрос
Я так понял нужно реализовать аналог millis()?
источник

DD

Davydov Denis in ru_ASUTP
в операционных системах обычно обрабатывается все по событию, остальное время процесс находится в ожидании, задержки смысла ставить нет, тк если они маленькие будут, то получится не лучше бесконечного цикла, который в пустую жрет процессор, если делать большие - то есть риск пропустить приходящие данные... а по событию - вешается на него функция обработчик, данные пришли, она вызывается, выполняет свою работу, и процесс дальше ждет наступления нового события... работает по аналогии с прерываниями, только основной код не в общем цикле хранится, а как бы в обработчике этого прерывания целиком
источник