Мелкие вопросы по МК и ПЛИС.
- БАТАРЕЙКУС
- Потрогал лапой паяльник
- Сообщения: 346
- Зарегистрирован: Сб фев 07, 2009 19:21:25
Re: Мелкие вопросы по МК и ПЛИС.
СПАСИБО
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
Re: Мелкие вопросы по МК и ПЛИС.
А в какой последовательности в Тиньках прерывания обрабатываются, напомните плиз?
Допустим, у меня идут прерывания от таймера 0 (динамическая индикация и т. д.), а еще прерывания от ноги INT1. На ногу INT1 я подаю 50 Гц из розетки (через оптрон естественно). Одно другому мешать не будет?
Допустим, у меня идут прерывания от таймера 0 (динамическая индикация и т. д.), а еще прерывания от ноги INT1. На ногу INT1 я подаю 50 Гц из розетки (через оптрон естественно). Одно другому мешать не будет?
Re: Мелкие вопросы по МК и ПЛИС.
Прерывания инициируются аппаратными флагами, которые устанавливаются независимо. Если в момент обработки одного прерывания сработает другое - его флаг останется висеть, и как только обработка первого завершится (флаг I глобальных прерываний опять установится), программа уйдёт сразу на обработку этого прерывания.
Но если случится, что за время обработки первого второе возникнет два или более раз, все остальные случаи потеряются (флаг-то у него один, как стоял так и будет стоять), соответственно и отработает оно только один раз.
Поэтому и говорят, что в прерываниях нельзя долго задерживаться.
Но если случится, что за время обработки первого второе возникнет два или более раз, все остальные случаи потеряются (флаг-то у него один, как стоял так и будет стоять), соответственно и отработает оно только один раз.
Поэтому и говорят, что в прерываниях нельзя долго задерживаться.
Re: Мелкие вопросы по МК и ПЛИС.
Кароче, у меня на прерывании от таймера висит динамическая индикация (2 мс/цифра) и точный подсчет временных интервалов (программный делитель с 500 Гц до 1 Гц). А на внешнюю ногу INT1 хочу подавать внешний сигнал, который имеет изначальный формат 220 В и для упрощения схемы эти 50 Гц будут генерить прерывание, которое будет сбрасывать там какую-нибудь переменную и т. п. Но смысл один - считать состояние "есть внешний сигнал 220 В" или "нет" (это сигнал с выключателя света в сортире, который запускает таймер отключения вентилятора после выключения света)
В общем, я так понял, все будет норм. Внешнее прерывание минимальной длины, а вот в прерывании от таймера у меня почти вся прога висит
В общем, я так понял, все будет норм. Внешнее прерывание минимальной длины, а вот в прерывании от таймера у меня почти вся прога висит
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Задайте переменную flag в которой присваивайте значение по срабатыванию прерыания таймера.
Обработку переменной делайте в основном цикле.
Это сократит время пребывания в прерывании и хоть както заполнит бесконечный цикл
Обработку переменной делайте в основном цикле.
Это сократит время пребывания в прерывании и хоть както заполнит бесконечный цикл
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: Мелкие вопросы по МК и ПЛИС.
А может проще тогда тестировать флаг прерывания программно?
Re: Мелкие вопросы по МК и ПЛИС.
Но смысл один - считать состояние "есть внешний сигнал 220 В" или "нет" (это сигнал с выключателя света в сортире, который запускает таймер отключения вентилятора после выключения света)
Если расписание похода в сортир не расписано у вас по микросекундам, тогда прерывание для этого не нужно. Нужно просто поставить интегрирующую RC-цепочку на пин, и при появлении 220В получится устойчивый логический уровень на нём через несколько периодов.
В основном цикле просто анализируем состояние ноги и принимаем решение.
Re: Мелкие вопросы по МК и ПЛИС.
ploop писал(а):Нужно просто поставить интегрирующую RC-цепочку на пин, и при появлении 220В получится устойчивый логический уровень на нём через несколько периодов.
Да я так и хотел сделать, но когда стал моделировать, оказалось, что керамическим СМД кондером не обойтись - нужно минимум 10 мкФ. Да и зачем ставить лишние детали, когда можно все сделать программно? Детали=место на плате и деньги, программа=халява.
Re: Мелкие вопросы по МК и ПЛИС.
Тогда в прерывании INT1 ставьте флаг и всё. При обработке - сбрасывайте.
Re: Мелкие вопросы по МК и ПЛИС.
А почему в прерывания не хорошо много всего пихать? Только потому, что за время его выполнения могут сработать 2 других? У меня задействовано всего одно прерывание от таймера 0. (ну еще стандартно прерывание по сбросу с переходом на метку reset:). От внешнего пина хотел еще добавить для упрощения аппаратной части.
Я почему не хочу делать индикацию вне прерывания, когда я делал часы на той же Тини2313, у меня таймеры были заюзаны под отсчет времени (1-й) и под генерацию сигнала будильника (0-й). И у меня индикатор иногда вдруг мигает: вдруг ни с того, ни с сего на доли секунды (0,1-0,3с) встает динамическая индикация (светится ярко какая-нибудь одна из цифр или вообще не светится). Причем время при этом не отстает, т. е. кварцевый генератор и таймеры не сбиваются. Сначала у меня был включен делитель на 8 (кварц 4 МГц) Время этого "стояния" было больше. Замена тиньки проблему не решила. Как будто проц вдруг останавливается, а потом дальше работает.
В девайсе, который делаю щас, генератор использую внутренний на 4 МГц, но я так понял, дело не в генераторе.
Вот с тех пор я и боюсь в ТИНИ2313 делать индикацию вне прерывания... Что с часами я так и не понял (это был мой первый девайс на МК)
Вдруг, вынесу из прерывания и те же глюки начнутся.
Я почему не хочу делать индикацию вне прерывания, когда я делал часы на той же Тини2313, у меня таймеры были заюзаны под отсчет времени (1-й) и под генерацию сигнала будильника (0-й). И у меня индикатор иногда вдруг мигает: вдруг ни с того, ни с сего на доли секунды (0,1-0,3с) встает динамическая индикация (светится ярко какая-нибудь одна из цифр или вообще не светится). Причем время при этом не отстает, т. е. кварцевый генератор и таймеры не сбиваются. Сначала у меня был включен делитель на 8 (кварц 4 МГц) Время этого "стояния" было больше. Замена тиньки проблему не решила. Как будто проц вдруг останавливается, а потом дальше работает.
В девайсе, который делаю щас, генератор использую внутренний на 4 МГц, но я так понял, дело не в генераторе.
Вот с тех пор я и боюсь в ТИНИ2313 делать индикацию вне прерывания... Что с часами я так и не понял (это был мой первый девайс на МК)
Вдруг, вынесу из прерывания и те же глюки начнутся.
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
aam писал(а):А почему в прерывания не хорошо много всего пихать? Только потому, что за время его выполнения могут сработать 2 других?
Не только других. Это же самое прерывание может сработать до того, как успеет обработаться. И если это или другие прерывания успеют произойти больше одного раза, во время обработки первого, то они будут потеряны. Плюс "тяжёлые" обработчики сильно тормозят работу основного кода.
Re: Мелкие вопросы по МК и ПЛИС.
Ну основной код у меня весь в прерывании был, так что тормозить нечего. В общем, я так понял, писать тяжелые прерывания - это не по-пацански
Исправил. Сделал флаг в регистре, в прерывании ставлю, а в бесконечном цикле все время его тестирую. Если флаг не установлен, просто кручу цикл, иначе тут же сбрасываю флаг и идет код. Правильно?
И что за глюки с часами у меня были?
Я так и не понял, может просветите?
И что за глюки с часами у меня были?
Re: Мелкие вопросы по МК и ПЛИС.
А микроконтроллеры можно программировать только на ассемблере или на других языках программирования тоже можно???(Например на Бэйсике)
С уважением, Миккон!
Re: Мелкие вопросы по МК и ПЛИС.
Сами микроконтроллеры программируются исполнительным кодом. А из чего исполнительный код сделан - дело десятое и зависит только от наличия таких средств. Ко многим микроконтроллерам есть компилятор Васика.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
[quote="Миккон"][/quote]
Вот это по моему на PICBasic'е сделано.
Вот это по моему на PICBasic'е сделано.
Re: Мелкие вопросы по МК и ПЛИС.
Товарищи, хочу научится программировать контроллеры (авр) тобиш свои программы писать, мой хвост
пал на язык асемблер"а, но чет ни как подходящего материала не могу найти для самообучения
либо все слишком сложно и о очень много слов и нечего в итоге не ясно. обучалку читал сложно
с чего начать самое самое простое? и написанное самым простым языком)) и в итоге получить хоть бы 1 мигающий светодиод на контроллере за месяц)) программатор есть, аврстудио4 есть юнипроф естьесть макетная плата но нет пока откладочной. паяльник и контроллеры тоже есть:))) что еще нужно ? я имею в виду программы.
либо все слишком сложно и о очень много слов и нечего в итоге не ясно. обучалку читал сложно
Re: Мелкие вопросы по МК и ПЛИС.
А если вот так: https://sunduk.radiokot.ru/loadfile/?load_id=1316073060канифоль писал(а):хочу научится программировать контроллеры (авр)
В котосундуке ещё много чего есть..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
МитяРа писал(а):А если вот так: https://sunduk.radiokot.ru/loadfile/?load_id=1316073060
Или вот так: http://radiokot.ru/start/mcu_fpga/avr/
или вот так: http://easyelectronics.ru/tag/assembler
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Кот Павел
- Нашел транзистор. Понюхал.
- Сообщения: 193
- Зарегистрирован: Вт ноя 08, 2011 18:36:47
- Откуда: Днепр
Re: Мелкие вопросы по МК и ПЛИС.
Здравствуйте! Решил освоить язык Assembler. Работаю в MASM32v10. Написал первую программу по примеру из учебника. Она должна выводить букву А на экран. Текст программы сохранил с расширением .asm, после компиляции создался файл .obj. Но моя програмка не работает потому что нет файла .exe.
Сам он не создается. Подскажите, пожалуйста, откуда он должен браться?
Или, может, все это нужно делать другим способом или работать в другой программе?
Или, может, все это нужно делать другим способом или работать в другой программе?
Re: Мелкие вопросы по МК и ПЛИС.
Для получения ехе-файла надо запустить ещё программу-линковщик..Кот Павел писал(а):Подскажите, пожалуйста, откуда он должен браться?
Ищи, там-же где и асм должна лежать..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]