Отговори на тема  [ 22 мнения ]  Отиди на страница Предишна  1, 2
Обикновен повторител (atMega) 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 28023
Местоположение: София
Мнение Re: Обикновен повторител (atMega)
nobodyshadow : Чай сега да видя къде беше тоя pdf който го четох, защото точно това пише в него, пък дали е стар силикон не знам, тв ами отвори като търсиг мега16

Рек или атмега е тотално дърво, което неми се вярва, или нещо пропускаш около работата с прекъсвания. Полиране на пин използвам, много много рядко, но и с атмеги не се знаимавам, на силабси, пиове, тексаски чипове съм нямал никакви грижи.


Чет Ное 04, 2021 10:00 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 28023
Местоположение: София
Мнение Re: Обикновен повторител (atMega)
Така, може би аз чета за грешна атмега 164А : https://ww1.microchip.com/downloads/en/ ... 02070B.pdf
Страница 76 :
Note: 1. n = 2, 1 or 0.
When changing the ISCn1/ISCn0 bits, the interrupt must be disabled by clearing its Interrupt Enable bit in the
EIMSK Register. Otherwise an interrupt can occur when the bits are changed.
Та може би има и други разлики между различните чипове, та така само въпрос за Atmeg ще е трудно да се отговори ако е е ясно кой точно е чипа.

п.с. то има и едно не съвсем ясно обяснение, че когато си в прекъсване хардуерно се забраняват всички прекъсвания, ама какво точно се забранява не е съвсем ясно, дали самото влизане в прекъсване или наистина не се генерира прекъсване от съответната периферия. Но доколкото разбрах това обяснение, забранява се а глобално ниво, т.е. тригерите все така си цъкат и най-вероятно прекъсването ще се генерира след като излезеш от текущото.

п.с.2 а по отношение дали изтърваш или не, много зависи каква ти е целта. Примерно следиш кодер с квадратурен изход, там ти е нужен фронт. Да може би някак може и по ниво, кое ниво ще се вдигне първо, но това зависи от честотата. те може да са с период 1 ms, но фазовата им разлика е 250 us,което само по себе си пак е много, освен обаче ако не искаш да правиш и филтрация.
На прекъсването това му е хубавото, нещо се случва когато се случи, през останалото време няма нужда да въртиш код и аналитично да остановяваш нещо случило ли се е или не. Примерно филтрация се прави много лесно като използваш прекъсване по фронт. Буквлано с 3 реда код, и една проверка в тялото.


Чет Ное 04, 2021 10:05 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Апр 13, 2018 3:00 pm
Мнения: 1325
Местоположение: София
Мнение Re: Обикновен повторител (atMega)
Според мен EICRA регистърът трябва да се установи еднократно при инициализация да прави прекъсване на всеки фронт на INT0,
а в тялото на прекъсването просто да се чете състоянието на INT0 пина и да се копира в PORTC пина.
Нямам обяснение защо се държи така, но това, което предлагам, е много по-просто и най-вероятно и по-шумоустойчиво.


Последна промяна al_at на Чет Ное 04, 2021 11:34 pm, променена общо 1 път



Чет Ное 04, 2021 11:03 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Окт 30, 2004 4:18 am
Мнения: 632
Мнение Re: Обикновен повторител (atMega)
Да явно има вариации. В мега328 това, че трябва да забраниш прекъсването преди да промениш фронта не го пише.
Иначе в прекъсване се забранява глобално от I бита в SREG и като излезеш ако имаш сетнат друг флаг ще се изпълни новото прекъсване.
Няма начин да не работи с прекъсване, пробвай гледай на скопа и ще стане.

_________________
Не мога да знам всичко,а и не искам.Тогава би било прекалено лесно и скучно!


Чет Ное 04, 2021 11:22 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2593
Местоположение: Велико Търново / София
Мнение Re: Обикновен повторител (atMega)
то може ли да се настрои да прекъсва едновременно и по двата фронта ?

_________________
https://github.com/slav4ocom/


Чет Ное 04, 2021 11:46 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Апр 13, 2018 3:00 pm
Мнения: 1325
Местоположение: София
Мнение Re: Обикновен повторител (atMega)
Може да се конфигурира да прекъсва по ниво /ниско/, по падащ фронт, по нарастващ фронт и по двата фронта.


Чет Ное 04, 2021 11:59 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 28023
Местоположение: София
Мнение Re: Обикновен повторител (atMega)
да може, но това иска малко по-сложна логика. Пак трябва да има флаг който да пази старото състояние за да знаеш дали какво се случва. Може да имаш кратък импулс който да генерира прекъсване и после да изчезне. Или още по-лошо, имаш механичен контакт който трепти, влизаш по-преден фронт четеш нула ...ако е за прост дебонсинг не ти дреме, ще влезеш пак по последния, но в не малко случаи ти трябва сравнително точен тайм щамп на фронта, т.е това може да си е реален импулс, и да му изместиш фронта с 20-30 мкс или повече може да е проблем.
Та затова реализацията с пренастройка е удачна. Сега то ако е критично има и други трикове. На мен ми харесва на силабса реализацията, и не само на прекъсванията де, за малък контролер според мен са едни от удачните решения.
п.с. аз не съм сигурен и това за едновременно прекъсване по фронт и ниво дали не съм го прочел наистина, като писах първи пост гледах в един пдф и го затворих, като писах втория вече гледах по цитирния по-горе. След твоя пост пък бях отворил трети и там наистина не пишеше нищо по тоя повод, но отворих хисторито и излезе пдф-а.
Та важно е да се чете пдф за конкретният чарк. Който не е работил с пик може и да няма тренинг, там четеш ератата за да знаеш какво да не четеш в дейта шита :), но май отдавна няма такива злобни ерати.


Пет Ное 05, 2021 2:56 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 22 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 9 госта


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

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни