Страница 1 из 1

пару вопросов об Тини

Добавлено: Пт мар 17, 2017 19:49:53
lDrakon
тинька 44А

возникают странные "приколы":

например:

если у меня есть обработчик прерывания, в нем работает АЦП и я хочу его синхронизировать с ШИМ, для сего хочу считывать TCNT и в момент перехода через 0 запускать АЦП ..

и все бы хорошо. но! как только запрещаются прерывания ( это я уже проверял вне обработчика прерывания .. а при входе в обработчик, прерывания автоматически запрещаются) - то условие отлова перехода счетчика таймера через ноль - зависает намертво ((((

почему, не пойму ..

Re: пару вопросов об Тини

Добавлено: Пт мар 17, 2017 20:05:22
Аlex
Классический ответ на подобное сообщение : "проблема в 28-ой строке кода".

Re: пару вопросов об Тини

Добавлено: Пт мар 17, 2017 20:33:53
lDrakon
Аlex писал(а):Классический ответ на подобное сообщение : "проблема в 28-ой строке кода".

код уж очень длинный ...

т.е. есть укоротить максимально - почему нормально не читается счетчик таймера (8бит), при запрете глобально прерываний ? ( может я чего упустил )

Добавлено after 13 minutes 54 seconds:
поясню - вопрос в возможных особенностях ... ( в коде ошибок не вижу - но рыть или не рыть дальше )

я вот натыкался - в этом же:

при переключении канала АЦП с обычного на дифференциалку, первое преобразование дает почему то чушь .. ломать голову не стал и сделал просто одно холостое преобразование ..

вот быть может и тут есть какие то тонкости, и если кто сталкивался .. какая то связь между считыванием TCNT флагом I.

Re: пару вопросов об Тини

Добавлено: Пт мар 17, 2017 21:24:08
ARV
lDrakon писал(а):в коде ошибок не вижу
я тоже не вижу. кода.

не в упрек будь сказано ув. модератору: такие темы надо закрывать с пометкой "учитесь правильно задавать вопросы".

Re: пару вопросов об Тини

Добавлено: Сб мар 18, 2017 04:46:12
pyzhman
lDrakon писал(а):...при переключении канала АЦП с обычного на дифференциалку, первое преобразование дает почему то чушь...
ADC Voltage Reference
The reference voltage for the ADC (V REF ) indicates the conversion range for the ADC.
Single ended channels that exceed V REF will result in codes close to 0x3FF. V REF can be
selected as either V CC , or internal 1.1V reference, or external AREF pin. The first ADC
conversion result after switching reference voltage source may be inaccurate, and the
user is advised to discard this result.
lDrakon писал(а):...при входе в обработчик, прерывания автоматически запрещаются) - то условие отлова перехода счетчика таймера через ноль - зависает намертво...
Зашли в обработчик прерывания - ждем условие,т.е. флага отлова (отлов в теле) - всё, ступор.

Re: пару вопросов об Тини

Добавлено: Сб мар 18, 2017 06:34:38
КРАМ
lDrakon писал(а): если у меня есть обработчик прерывания, в нем работает АЦП и я хочу его синхронизировать с ШИМ, для сего хочу считывать TCNT и в момент перехода через 0 запускать АЦП ..
Написано на тарабарском языке.
Лично я ничего не понял.
Опишите алгоритм более общим образом.
Скорее всего, что порочен сам МЕТОД реализации.

Re: пару вопросов об Тини

Добавлено: Сб мар 18, 2017 11:17:11
lDrakon
ARV писал(а):
lDrakon писал(а):в коде ошибок не вижу
я тоже не вижу. кода.

не в упрек будь сказано ув. модератору: такие темы надо закрывать с пометкой "учитесь правильно задавать вопросы".

какой вы резкий прям ...

говорят же код длинные и на алгоритмике писан и ?

Добавлено after 2 minutes 21 second:
pyzhman писал(а):
lDrakon писал(а):...при переключении канала АЦП с обычного на дифференциалку, первое преобразование дает почему то чушь...
ADC Voltage Reference
The reference voltage for the ADC (V REF ) indicates the conversion range for the ADC.
Single ended channels that exceed V REF will result in codes close to 0x3FF. V REF can be
selected as either V CC , or internal 1.1V reference, or external AREF pin. The first ADC
conversion result after switching reference voltage source may be inaccurate, and the
user is advised to discard this result.
lDrakon писал(а):...при входе в обработчик, прерывания автоматически запрещаются) - то условие отлова перехода счетчика таймера через ноль - зависает намертво...
Зашли в обработчик прерывания - ждем условие,т.е. флага отлова (отлов в теле) - всё, ступор.

вы описали случай переключения референсного напряжения .. а речь не о нем, оно остается тем же ( внешнее )

в описаном случае - нету обработчика! обычный линейный участок кода, лишь перед условием проверки счетчика флаг глобальных прерываний ( разрешения их ) ставиться в ноль.

Добавлено after 4 minutes 5 seconds:
КРАМ писал(а):
lDrakon писал(а): если у меня есть обработчик прерывания, в нем работает АЦП и я хочу его синхронизировать с ШИМ, для сего хочу считывать TCNT и в момент перехода через 0 запускать АЦП ..
Написано на тарабарском языке.
Лично я ничего не понял.
Опишите алгоритм более общим образом.
Скорее всего, что порочен сам МЕТОД реализации.

я же сразу описал - что это часть длинной программы ...

конечно ловя косяки ты отключаешь все лишнее и оставляешь исполняться лишь данный кусок - работа внутри прерывания лишь предполагается, а сейчас это простой кусок кода где запускается АЦП в момент счетчика ШИМа перехода нуля ...

но так как, именно что будет в итоге внутри прерывания ( другого таймера ), то делаю запрет глобальных прерываний - и вот тут эта част кода садиться, и как выяснилось именно на моменте отлова прохождения нуля таймером ШИМа ...

в момент работы данного куска, единственно что еще работает это сам ШИМ и сторожевой таймер

ПС: хочется конечно поскромнее, но я тока зарегился тут и считают "новичек", но это не значит что контроллеры и программирование я увидел первый раз в жизни ... и вопрос именно в особенностях именно данного контролера ( возможных!)

Re: пару вопросов об Тини

Добавлено: Сб мар 18, 2017 13:49:43
pyzhman
lDrakon писал(а):...и ?...
Минусую свой VangaLevel на 17 единиц.

Re: пару вопросов об Тини

Добавлено: Сб мар 18, 2017 14:02:58
КРАМ
lDrakon писал(а):я тока зарегился тут и считают "новичек", но это не значит что контроллеры и программирование я увидел первый раз в жизни ...
Набор слов, который Вы изрекаете, никак не связан с новизной Вашего пребывания тут.
Пытаясь отделить проблему от задачи, да еще косноязычно до беспредела, Вы гарантируете отсутствие всякой помощи Вам...
Увы.

Re: пару вопросов об Тини

Добавлено: Сб мар 18, 2017 15:21:38
lDrakon
все спасибо за помощь и добрые слова )))

да, надо просто делать перекуры ... а то начинаешь тупить на ровном месте (((

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

но быть может и вообще отказаться от этой синхронизации ...

оказалась проблема в другом - это оффсет на диффе гуляет +/- 1 ... - вот что делать с этим, уже вопрос ..

Re: пару вопросов об Тини

Добавлено: Вс мар 19, 2017 05:40:28
КРАМ
Сам с собой на птичьем языке...
:)))

Re: пару вопросов об Тини

Добавлено: Вс мар 19, 2017 07:17:30
pyzhman
lDrakon писал(а):...а сравнение конечно выполняется больше чем за один такт ...
Сравнивать нужно не ==, а >.

Re: пару вопросов об Тини

Добавлено: Вс мар 19, 2017 12:59:15
lDrakon
pyzhman писал(а):
lDrakon писал(а):...а сравнение конечно выполняется больше чем за один такт ...
Сравнивать нужно не ==, а >.
можно да - но тогда точка старта АЦП возможно будет плавать ...

но уже может и не важно - оказалось, в целом - если отбросить плавание оффсета - то все в рамочках ..

а вот как с этим смещение быть - только если помнить прошлый результат и этот +/- 1 исключать ... ( а переменных и так не осталось, а использовать ОЗУ, лишний код, а и тут уже в притык )