Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
БАТАРЕЙКУС
Потрогал лапой паяльник
Сообщения: 346
Зарегистрирован: Сб фев 07, 2009 19:21:25

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение БАТАРЕЙКУС »

СПАСИБО
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

А в какой последовательности в Тиньках прерывания обрабатываются, напомните плиз?
Допустим, у меня идут прерывания от таймера 0 (динамическая индикация и т. д.), а еще прерывания от ноги INT1. На ногу INT1 я подаю 50 Гц из розетки (через оптрон естественно). Одно другому мешать не будет?
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

Прерывания инициируются аппаратными флагами, которые устанавливаются независимо. Если в момент обработки одного прерывания сработает другое - его флаг останется висеть, и как только обработка первого завершится (флаг I глобальных прерываний опять установится), программа уйдёт сразу на обработку этого прерывания.

Но если случится, что за время обработки первого второе возникнет два или более раз, все остальные случаи потеряются (флаг-то у него один, как стоял так и будет стоять), соответственно и отработает оно только один раз.
Поэтому и говорят, что в прерываниях нельзя долго задерживаться.
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

Кароче, у меня на прерывании от таймера висит динамическая индикация (2 мс/цифра) и точный подсчет временных интервалов (программный делитель с 500 Гц до 1 Гц). А на внешнюю ногу INT1 хочу подавать внешний сигнал, который имеет изначальный формат 220 В и для упрощения схемы эти 50 Гц будут генерить прерывание, которое будет сбрасывать там какую-нибудь переменную и т. п. Но смысл один - считать состояние "есть внешний сигнал 220 В" или "нет" (это сигнал с выключателя света в сортире, который запускает таймер отключения вентилятора после выключения света)
В общем, я так понял, все будет норм. Внешнее прерывание минимальной длины, а вот в прерывании от таймера у меня почти вся прога висит
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Meteor »

Задайте переменную flag в которой присваивайте значение по срабатыванию прерыания таймера.
Обработку переменной делайте в основном цикле.
Это сократит время пребывания в прерывании и хоть както заполнит бесконечный цикл
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

А может проще тогда тестировать флаг прерывания программно?
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

Но смысл один - считать состояние "есть внешний сигнал 220 В" или "нет" (это сигнал с выключателя света в сортире, который запускает таймер отключения вентилятора после выключения света)

Если расписание похода в сортир не расписано у вас по микросекундам, тогда прерывание для этого не нужно. Нужно просто поставить интегрирующую RC-цепочку на пин, и при появлении 220В получится устойчивый логический уровень на нём через несколько периодов.

В основном цикле просто анализируем состояние ноги и принимаем решение.
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

ploop писал(а):Нужно просто поставить интегрирующую RC-цепочку на пин, и при появлении 220В получится устойчивый логический уровень на нём через несколько периодов.

Да я так и хотел сделать, но когда стал моделировать, оказалось, что керамическим СМД кондером не обойтись - нужно минимум 10 мкФ. Да и зачем ставить лишние детали, когда можно все сделать программно? Детали=место на плате и деньги, программа=халява.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

Тогда в прерывании INT1 ставьте флаг и всё. При обработке - сбрасывайте.
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

А почему в прерывания не хорошо много всего пихать? Только потому, что за время его выполнения могут сработать 2 других? У меня задействовано всего одно прерывание от таймера 0. (ну еще стандартно прерывание по сбросу с переходом на метку reset:). От внешнего пина хотел еще добавить для упрощения аппаратной части.
Я почему не хочу делать индикацию вне прерывания, когда я делал часы на той же Тини2313, у меня таймеры были заюзаны под отсчет времени (1-й) и под генерацию сигнала будильника (0-й). И у меня индикатор иногда вдруг мигает: вдруг ни с того, ни с сего на доли секунды (0,1-0,3с) встает динамическая индикация (светится ярко какая-нибудь одна из цифр или вообще не светится). Причем время при этом не отстает, т. е. кварцевый генератор и таймеры не сбиваются. Сначала у меня был включен делитель на 8 (кварц 4 МГц) Время этого "стояния" было больше. Замена тиньки проблему не решила. Как будто проц вдруг останавливается, а потом дальше работает.
В девайсе, который делаю щас, генератор использую внутренний на 4 МГц, но я так понял, дело не в генераторе.
Вот с тех пор я и боюсь в ТИНИ2313 делать индикацию вне прерывания... Что с часами я так и не понял (это был мой первый девайс на МК)
Вдруг, вынесу из прерывания и те же глюки начнутся.
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AI_Disable »

aam писал(а):А почему в прерывания не хорошо много всего пихать? Только потому, что за время его выполнения могут сработать 2 других?

Не только других. Это же самое прерывание может сработать до того, как успеет обработаться. И если это или другие прерывания успеют произойти больше одного раза, во время обработки первого, то они будут потеряны. Плюс "тяжёлые" обработчики сильно тормозят работу основного кода.
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

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

И что за глюки с часами у меня были? :shock: Я так и не понял, может просветите?
Миккон
Родился
Сообщения: 3
Зарегистрирован: Сб янв 07, 2012 11:26:08

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Миккон »

А микроконтроллеры можно программировать только на ассемблере или на других языках программирования тоже можно???(Например на Бэйсике)
С уважением, Миккон!
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение uldemir »

Сами микроконтроллеры программируются исполнительным кодом. А из чего исполнительный код сделан - дело десятое и зависит только от наличия таких средств. Ко многим микроконтроллерам есть компилятор Васика.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

[quote="Миккон"][/quote]
Вот это по моему на PICBasic'е сделано.
Аватара пользователя
канифоль
Встал на лапы
Сообщения: 110
Зарегистрирован: Сб янв 08, 2011 12:56:03
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение канифоль »

Товарищи, хочу научится программировать контроллеры (авр) тобиш свои программы писать, мой хвост :)) пал на язык асемблер"а, но чет ни как подходящего материала не могу найти для самообучения :write: либо все слишком сложно и о очень много слов и нечего в итоге не ясно. обучалку читал сложно :oops: :facepalm: :oops: с чего начать самое самое простое? и написанное самым простым языком)) и в итоге получить хоть бы 1 мигающий светодиод на контроллере за месяц)) программатор есть, аврстудио4 есть юнипроф естьесть макетная плата но нет пока откладочной. паяльник и контроллеры тоже есть:))) что еще нужно ? я имею в виду программы.
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

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: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

МитяРа писал(а):А если вот так: 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. :( Сам он не создается. Подскажите, пожалуйста, откуда он должен браться?
Или, может, все это нужно делать другим способом или работать в другой программе?
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение МитяРа »

Кот Павел писал(а):Подскажите, пожалуйста, откуда он должен браться?
Для получения ехе-файла надо запустить ещё программу-линковщик..
Ищи, там-же где и асм должна лежать..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Ответить

Вернуться в «Разные вопросы по МК»