RP2040 Измерение времени менее 1 мкс

Это нормально. Это просто ума не хватает. Не всем дано :wink:

памяти, у меня уже памяти не хватает, если что то новое в ухо влетает, то что то другое вылетит…

Караул!!! Администрация!!!

Попробовал Ваш код. Разницы с моим кодом никакой. При частоте процессора 50 мГц. Разность между переменными M и M_old меняется от 1000000 до 1000007. У меня в коде такая же разность. Просто у меня одно ядро процессора только и делает что читает переменную М.

Будить должен будильник. В данном контексте будете. Нужны доказательства - откройте учебник русского языка.

Вы не знаете родного языка. И судя по некомпилируемому коду, который вы выкладывали, ваше владение языками программирования далеко от совершенства.

Ну а попытки поиграть в тролля так толсты и предсказуемы, что вызывают лишь кривую ухмылку.

не говори ерунды, в моём коде (на штатной частоте 133) всё должно укладываться в 1 микросекунду, то-есть до переполнения переменной, а оно у тебя довольно быстро произойдёт, разница должна быть чётко 1секунда и ни одной микросекунды больше, нечему там моросить, а вот твой код однозначно должен моросить
PS если есть у кого RP проверьте плиз

Только проверьте на частоте 50 мГц. там сильнее видно разницу. На 133 мГц разницу будет сложнее заметить.

конечно от балды )))

Вот даже в таком простом задании ты умудрился не сказать много необходимых вещей. Например. По какому событию запускается таймер или с какого момента идёт засечка начала отсчёта. Это пикосекундный лазер стреляет или напряжение на выводе аппаратуры изменяет уровень? Если последнее, то какой уровень фронта сигнала принимается за начало интервала? Аналогичные требования к концу интервала. Переменная, в которую считывается регистр таймера должна считываться каждый тик таймера или в конце интервала? Как часто происходят измерения или что делать с переменной? Собирать массив или выводить на экран? Есть ещё вопросы, но ответь хотя бы на эти.

А какая разница при каких условиях будет считываться значение таймера, если я не знаю как это значение таймера считать.

штатная частота 133, я более чем уверен, что компилятор уложит код выполнения проверки флага в 1 микросекунду, почитайте про ATOMIC может поймёте свои ошибки

Просто надо еще добавить, что зуб даю, вместо “я более чем уверен” Просто на 133 мгц сложнее заметить разницу. А на 250 мгц разница еще сократится.

Регистр таймера это почти такая же переменная как ячейки памяти к которым привязана объявленная переменная. Отличие в том что переменная может к любой ячейке памяти а регистр имеет фиксированный адрес и имеет стабильное фиксированное имя, которое можно найти в документации МК. Т.е. просто написав
uint64 a=(имя регистра таймера, который ты хочешь прочитать)
ты получишь его значение.

ёжики жрали кактус, кололись, но продолжали жрать кактус, ещё раз - атомарное чтение

Выложи монитор порта на 133 мегагерца от моего и твоего кода

я кажется понял)))
для того что бы ускорить код надо стереть вот эту строчку Serial.print(" M= ");
к сожалению я новичок, и как еще ускорить код не знаю))) может еще кто то сможет подсказать…

нет, надо чтобы выполнение машинного кода этого укладывалось в 1 микросекунду

 if ((M - M_old) >= 1000000)
  {
    flag = true;
    M_old = M;
    flag = false;

Речь не о способе, а о потребности.
Ни одна многозадачная ОС, даже RT, не может обеспечить воспроизводимость временных интервалов с точностью микросекунд или выше.

Ну да, х86 - достаточно древняя архитектура.

так как в одном месте у меня свербило, неужели накосячил что, озадачился, вот в мониторе порта, я жеж говорил не может мой код моросить, не может

M = 4286985867
 M = 4287985867
 M = 4288985867
 M = 4289985867
 M = 4290985867
 M = 4291985867
 M = 4292985867
 M = 4293985867
 M = 18571
 M = 1018571
 M = 2018571
 M = 3018571
 M = 4018571
 M = 5018571
 M = 6018571

Я конечно Вам верю, только не знаю как заставить мой компьютер тоже поверить Вам.
Первая картинка это то, что выдает Com порт в моем коде. Вторая картинка - в Вашем.
Я разницы не заметил.

Это потому, что внизу не мой код, не лезь в него шаловливыми ручками увидишь отличия