Там, про между прочим есть ещё указивки про время переключения ADMUX, смену режимов с диф. на обыкновенный, время смены референса и т.д. И да, то что я проделал - это проверка насколько в реальности способен работать АЦП, а не "по даташиту так делать нельзя" .. кстати, там такого в явном виде "нельзя" - НЕ УКАЗАНО. :)
Да, у НАНО с тактовой 16Мгц делитель 1:2 - не запускает АЦП совсем, но зато НАНО очень хорошо реагирует на кварцы повышенной частоты примерно до 32Мгц, что фактически "то же самое", только вид сбоку. :)
И это ни разу не "Вы где-то ошиблись". Вполне нормальный пультоскоп с оцифровкой практически в 500кГц на штатной меге. И не штатной тоже. :)
P.S. А при наличии SRAM даже в 64кбайта - очень даже и сэмплирование делать можно, но только очень грамотно.. :)
то что я проделал - это проверка насколько в реальности способен работать АЦП, а не "по даташиту
Понято и принято.
Arhat109-2 пишет:
НАНО очень хорошо реагирует на кварцы повышенной частоты примерно до 32Мгц
1. Это будет уже не "Нано".
2. По даташиту - не более 20МГц, но с учётом п. 1 выше, это тоже "понято и принято".
Arhat109-2 пишет:
P.S. А при наличии SRAM даже в 64кбайта - очень даже и сэмплирование делать можно, но только очень грамотно.. :)
Мы немного их разных миров. В том мире, в котором я живу, понятия "вылазить за режимы, рекомендованные производителем" и "грамотно" несовместимы. В Вашем мире - Вам виднее.
Да не указано у производителя ограничение режимов! Указан только ряд рекомендаций КАК сделать так чтобы АЦП показывал нечто вразумительное. Вот .. творческая переработка, ничего лишнего. :)
Другое дело что ТС-у это ни разу не поможет - это уже явно, ибо "читать даташит" он толи не умеет, толи не желает..
P.S. при грамотном прочтении даташита и выполнении всех условий, получить оцифровку на 300-400кГц с точностью 8 бит - вполне реально, что и было показано в той теме.
Ну и здесь, в проектах, тема за пультоскоп - вполне нормальная реализация этих, якобы "запредельных" режимов. Ничего там необычного в общем-то и нет.
Да не указано у производителя ограничение режимов!
Пожалуйста, не заставляйте меня думать, что Вы не умеете читать. Откройте таблицу Table 29-15 и объясните (самому себе, мне не надо) что там означает слово "Max" - ограничение или "рекомендацию". Так вот этот самый Max там - 1000kHz. А значит 13мкс на преобразование - абсолютный Min.
Я предлагаю прекратить эту дискуссию. Более того, если не будет прямых вопросов ко мне, то прекращаю её в одностороннем порядке. Мы же с Вами хорошо и мирно живем уж более года, давайте не будем всё ломать. Я помню, что у Вас "кривой компилятор", "кривой стандарт языка", теперь вот "кривой даташит". Я уважаю Ваше мнение и признаю Ваше право его придерживаться. Давайте прекратим, пожалуйста.
Даташит - это вообще описание устройства и "рекомендации" по правильному применению. В том смысле что если рекомендации даташита соблюдаются, то производитель гарантирует соответствие заявленному. Но это ни разу не запрещает иное использование железок, что на моей памяти бывало не единожды, в т.ч. и приводящее к изменениям в даташитах впоследствии. Щас на память конкретные случаи не вспомню конечно же.
Когда в даташите нечто запрещается - оно запрещается в явном виде, потому как гарантирует выход за соответствие или и вовсе выход железки из строя. В данном случае явного запрета в даташит нет, несмотря на то, что делитель есть и его всегда найдется чудак, пожелающий "проверить".. было бы "низзя" - прописали бы даташите в явном виде: "нельзя использовать выше..". Такого там нет ни для одной меги.
Но, в целом, это не "дискуссия". Просто решил помочь Вам правильно читать даташиты. Это - рекомендации в целом, а не догмат к строгому исполнению. Хороший даташит - явно описывает все проблемы, ограничения и позволяет комбинировать их конкретно так, как Вам хочется. Плохой - тот, что в рекламной части заявляет одно, а мелким шрифтом - иное. Даташиты на меги - очень даже хорошие. :)
При тиках таймера 156 мкс еще остается куча времени на все остальное.
а теперь посчитайте сколько времени требует на выполнение код внутри обработчика таймера
думаю сильно удивитесь тому, что если код обработчика выполняется слишком медденно то таймер тикает совсем не так как вы думаете
вы упорно не хотите разбираться в том что и как работает. при том, что полный код тоже держится в тайне то и другие не смогут вам в этом помочь. посему не понятно вообще о чем тема)
В общем, проверка на столе с другой платой показала, что мой код с заглушкой вместо прерываний от детектора нуля и без дисплея работает. Я неправильно определил причину проблемы. АЦП в прерываниях таймера запускается, времени на все хватает. Я совсем забыл про дисплей. А он использует spi. Что в сочетании с прерываниями по таймеру и внешним каким то образом и не дает работать АЦП в обработчике прерываний.
Свою задачу решил вынеся все обращения к АЦП в основной цикл по флагам взводимым в прерываниях как здесь кто то и советовал. И времени хватает даже на полноразрядную работу с АЦП вызовом сайберлибовской функции An_Read c делителем 16. Хотя такая разрядность мне и не нужна, дальше все равно идет округление, ток выводится на дисплей с одним знаком после запятой.
Тема АЦП в обработчике прерываний можно считать исчерпана. АЦП из обработчика запускается, но только если этому не мешают другие факторы.
Arhat109-2
Открываем даташит (328-ой) и читаем
Ну дальше всё ясно. :)
Там, про между прочим есть ещё указивки про время переключения ADMUX, смену режимов с диф. на обыкновенный, время смены референса и т.д. И да, то что я проделал - это проверка насколько в реальности способен работать АЦП, а не "по даташиту так делать нельзя" .. кстати, там такого в явном виде "нельзя" - НЕ УКАЗАНО. :)
Да, у НАНО с тактовой 16Мгц делитель 1:2 - не запускает АЦП совсем, но зато НАНО очень хорошо реагирует на кварцы повышенной частоты примерно до 32Мгц, что фактически "то же самое", только вид сбоку. :)
И это ни разу не "Вы где-то ошиблись". Вполне нормальный пультоскоп с оцифровкой практически в 500кГц на штатной меге. И не штатной тоже. :)
P.S. А при наличии SRAM даже в 64кбайта - очень даже и сэмплирование делать можно, но только очень грамотно.. :)
Понято и принято.
1. Это будет уже не "Нано".
2. По даташиту - не более 20МГц, но с учётом п. 1 выше, это тоже "понято и принято".
P.S. А при наличии SRAM даже в 64кбайта - очень даже и сэмплирование делать можно, но только очень грамотно.. :)
Мы немного их разных миров. В том мире, в котором я живу, понятия "вылазить за режимы, рекомендованные производителем" и "грамотно" несовместимы. В Вашем мире - Вам виднее.
Да не указано у производителя ограничение режимов! Указан только ряд рекомендаций КАК сделать так чтобы АЦП показывал нечто вразумительное. Вот .. творческая переработка, ничего лишнего. :)
Другое дело что ТС-у это ни разу не поможет - это уже явно, ибо "читать даташит" он толи не умеет, толи не желает..
P.S. при грамотном прочтении даташита и выполнении всех условий, получить оцифровку на 300-400кГц с точностью 8 бит - вполне реально, что и было показано в той теме.
Ну и здесь, в проектах, тема за пультоскоп - вполне нормальная реализация этих, якобы "запредельных" режимов. Ничего там необычного в общем-то и нет.
Да не указано у производителя ограничение режимов!
Пожалуйста, не заставляйте меня думать, что Вы не умеете читать. Откройте таблицу Table 29-15 и объясните (самому себе, мне не надо) что там означает слово "Max" - ограничение или "рекомендацию". Так вот этот самый Max там - 1000kHz. А значит 13мкс на преобразование - абсолютный Min.
Я предлагаю прекратить эту дискуссию. Более того, если не будет прямых вопросов ко мне, то прекращаю её в одностороннем порядке. Мы же с Вами хорошо и мирно живем уж более года, давайте не будем всё ломать. Я помню, что у Вас "кривой компилятор", "кривой стандарт языка", теперь вот "кривой даташит". Я уважаю Ваше мнение и признаю Ваше право его придерживаться. Давайте прекратим, пожалуйста.
Даташит - это вообще описание устройства и "рекомендации" по правильному применению. В том смысле что если рекомендации даташита соблюдаются, то производитель гарантирует соответствие заявленному. Но это ни разу не запрещает иное использование железок, что на моей памяти бывало не единожды, в т.ч. и приводящее к изменениям в даташитах впоследствии. Щас на память конкретные случаи не вспомню конечно же.
Когда в даташите нечто запрещается - оно запрещается в явном виде, потому как гарантирует выход за соответствие или и вовсе выход железки из строя. В данном случае явного запрета в даташит нет, несмотря на то, что делитель есть и его всегда найдется чудак, пожелающий "проверить".. было бы "низзя" - прописали бы даташите в явном виде: "нельзя использовать выше..". Такого там нет ни для одной меги.
Но, в целом, это не "дискуссия". Просто решил помочь Вам правильно читать даташиты. Это - рекомендации в целом, а не догмат к строгому исполнению. Хороший даташит - явно описывает все проблемы, ограничения и позволяет комбинировать их конкретно так, как Вам хочется. Плохой - тот, что в рекламной части заявляет одно, а мелким шрифтом - иное. Даташиты на меги - очень даже хорошие. :)
При тиках таймера 156 мкс еще остается куча времени на все остальное.
а теперь посчитайте сколько времени требует на выполнение код внутри обработчика таймера
думаю сильно удивитесь тому, что если код обработчика выполняется слишком медденно то таймер тикает совсем не так как вы думаете
вы упорно не хотите разбираться в том что и как работает. при том, что полный код тоже держится в тайне то и другие не смогут вам в этом помочь. посему не понятно вообще о чем тема)
В общем, проверка на столе с другой платой показала, что мой код с заглушкой вместо прерываний от детектора нуля и без дисплея работает. Я неправильно определил причину проблемы. АЦП в прерываниях таймера запускается, времени на все хватает. Я совсем забыл про дисплей. А он использует spi. Что в сочетании с прерываниями по таймеру и внешним каким то образом и не дает работать АЦП в обработчике прерываний.
Свою задачу решил вынеся все обращения к АЦП в основной цикл по флагам взводимым в прерываниях как здесь кто то и советовал. И времени хватает даже на полноразрядную работу с АЦП вызовом сайберлибовской функции An_Read c делителем 16. Хотя такая разрядность мне и не нужна, дальше все равно идет округление, ток выводится на дисплей с одним знаком после запятой.
Тема АЦП в обработчике прерываний можно считать исчерпана. АЦП из обработчика запускается, но только если этому не мешают другие факторы.