Страница 276 из 628

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

Добавлено: Пн янв 02, 2012 17:55:39
БАТАРЕЙКУС
СПАСИБО

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

Добавлено: Вт янв 03, 2012 22:02:43
aam
А в какой последовательности в Тиньках прерывания обрабатываются, напомните плиз?
Допустим, у меня идут прерывания от таймера 0 (динамическая индикация и т. д.), а еще прерывания от ноги INT1. На ногу INT1 я подаю 50 Гц из розетки (через оптрон естественно). Одно другому мешать не будет?

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

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

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

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

Добавлено: Ср янв 04, 2012 09:54:36
aam
Кароче, у меня на прерывании от таймера висит динамическая индикация (2 мс/цифра) и точный подсчет временных интервалов (программный делитель с 500 Гц до 1 Гц). А на внешнюю ногу INT1 хочу подавать внешний сигнал, который имеет изначальный формат 220 В и для упрощения схемы эти 50 Гц будут генерить прерывание, которое будет сбрасывать там какую-нибудь переменную и т. п. Но смысл один - считать состояние "есть внешний сигнал 220 В" или "нет" (это сигнал с выключателя света в сортире, который запускает таймер отключения вентилятора после выключения света)
В общем, я так понял, все будет норм. Внешнее прерывание минимальной длины, а вот в прерывании от таймера у меня почти вся прога висит

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

Добавлено: Ср янв 04, 2012 10:41:40
Meteor
Задайте переменную flag в которой присваивайте значение по срабатыванию прерыания таймера.
Обработку переменной делайте в основном цикле.
Это сократит время пребывания в прерывании и хоть както заполнит бесконечный цикл

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

Добавлено: Ср янв 04, 2012 10:48:03
aam
А может проще тогда тестировать флаг прерывания программно?

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

Добавлено: Ср янв 04, 2012 16:31:01
ploop
Но смысл один - считать состояние "есть внешний сигнал 220 В" или "нет" (это сигнал с выключателя света в сортире, который запускает таймер отключения вентилятора после выключения света)
Если расписание похода в сортир не расписано у вас по микросекундам, тогда прерывание для этого не нужно. Нужно просто поставить интегрирующую RC-цепочку на пин, и при появлении 220В получится устойчивый логический уровень на нём через несколько периодов.

В основном цикле просто анализируем состояние ноги и принимаем решение.

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

Добавлено: Ср янв 04, 2012 20:17:04
aam
ploop писал(а):Нужно просто поставить интегрирующую RC-цепочку на пин, и при появлении 220В получится устойчивый логический уровень на нём через несколько периодов.
Да я так и хотел сделать, но когда стал моделировать, оказалось, что керамическим СМД кондером не обойтись - нужно минимум 10 мкФ. Да и зачем ставить лишние детали, когда можно все сделать программно? Детали=место на плате и деньги, программа=халява.

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

Добавлено: Ср янв 04, 2012 21:14:24
ploop
Тогда в прерывании INT1 ставьте флаг и всё. При обработке - сбрасывайте.

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

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

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

Добавлено: Сб янв 07, 2012 19:48:26
AI_Disable
aam писал(а):А почему в прерывания не хорошо много всего пихать? Только потому, что за время его выполнения могут сработать 2 других?
Не только других. Это же самое прерывание может сработать до того, как успеет обработаться. И если это или другие прерывания успеют произойти больше одного раза, во время обработки первого, то они будут потеряны. Плюс "тяжёлые" обработчики сильно тормозят работу основного кода.

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

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

И что за глюки с часами у меня были? :shock: Я так и не понял, может просветите?

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

Добавлено: Пн янв 09, 2012 15:18:12
Миккон
А микроконтроллеры можно программировать только на ассемблере или на других языках программирования тоже можно???(Например на Бэйсике)

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

Добавлено: Пн янв 09, 2012 15:20:43
uldemir
Сами микроконтроллеры программируются исполнительным кодом. А из чего исполнительный код сделан - дело десятое и зависит только от наличия таких средств. Ко многим микроконтроллерам есть компилятор Васика.

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

Добавлено: Пн янв 09, 2012 18:48:21
Chettuser
[quote="Миккон"][/quote]
Вот это по моему на PICBasic'е сделано.

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

Добавлено: Вт янв 10, 2012 16:32:40
канифоль
Товарищи, хочу научится программировать контроллеры (авр) тобиш свои программы писать, мой хвост :)) пал на язык асемблер"а, но чет ни как подходящего материала не могу найти для самообучения :write: либо все слишком сложно и о очень много слов и нечего в итоге не ясно. обучалку читал сложно :oops: :facepalm: :oops: с чего начать самое самое простое? и написанное самым простым языком)) и в итоге получить хоть бы 1 мигающий светодиод на контроллере за месяц)) программатор есть, аврстудио4 есть юнипроф естьесть макетная плата но нет пока откладочной. паяльник и контроллеры тоже есть:))) что еще нужно ? я имею в виду программы.

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

Добавлено: Вт янв 10, 2012 16:36:03
МитяРа
канифоль писал(а):хочу научится программировать контроллеры (авр)
А если вот так: https://sunduk.radiokot.ru/loadfile/?load_id=1316073060
В котосундуке ещё много чего есть..

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

Добавлено: Вт янв 10, 2012 18:06:28
Gudd-Head
МитяРа писал(а):А если вот так: https://sunduk.radiokot.ru/loadfile/?load_id=1316073060
Или вот так: http://radiokot.ru/start/mcu_fpga/avr/
или вот так: http://easyelectronics.ru/tag/assembler

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

Добавлено: Ср янв 11, 2012 18:14:18
Кот Павел
Здравствуйте! Решил освоить язык Assembler. Работаю в MASM32v10. Написал первую программу по примеру из учебника. Она должна выводить букву А на экран. Текст программы сохранил с расширением .asm, после компиляции создался файл .obj. Но моя програмка не работает потому что нет файла .exe. :( Сам он не создается. Подскажите, пожалуйста, откуда он должен браться?
Или, может, все это нужно делать другим способом или работать в другой программе?

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

Добавлено: Ср янв 11, 2012 18:16:39
МитяРа
Кот Павел писал(а):Подскажите, пожалуйста, откуда он должен браться?
Для получения ехе-файла надо запустить ещё программу-линковщик..
Ищи, там-же где и асм должна лежать..