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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
dzrkot
Открыл глаза
Сообщения: 75
Зарегистрирован: Чт авг 29, 2013 08:02:24

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

Сообщение dzrkot »

Gudd-Head писал(а):
dzrkot писал(а):Всётаки я очень надеялся что мне на простом примитивном языке это подскажут, и в голове вся картина соберётся воедио.

Вектор прерываний — это адреса ячеек памяти программ, которые загружаются в счётчик команд при возникновении прерывания.
Другими словами, МК начинает выполнять команды, расположенные по соотв. адресу прерывания.
Т.е. если у вас будет прерывание DMA, то будет выполняться команда по адресу 0FFE4h.
Обычно вектор прерываний содержит команды безусловного перехода на области памяти, где непосредственно находятся процедуры обработки прерываний.

спасибо)
тогда дальше, вот по этому адресу 0FFE4h , у меня что находится, просто грубо говоря пустая ограниченная область памяти, в которую я уже пишу код, и грубо говоря оперирую именно ей. А если мне надо скажем по прерыванию что-то посчитать для main, то мне придётся обращаться к локальным переменным в main через указатели(или ссылки в С++), ну т.е. это по сути будет (с точки зрения написания кода) просто функция, которая ничего не возвращает и не имеет аргументов?
dzrkot
Открыл глаза
Сообщения: 75
Зарегистрирован: Чт авг 29, 2013 08:02:24

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

Сообщение dzrkot »

ibiza11 писал(а):что такое прерывание в общих чертах Вы, полагаю уже знаете.
Я могу чуть подробнее рассказать:
В контроллере есть таблица векторов, в которой находятся команды перехода на обработчики прерываний.
Обработчик прерывания - обычная функция, выполняемая в прерывании.
Контроллер в обычном режиме двигает указатель по программной памяти и последовательно считывает и выполняет команды, одна за другой. В момент возникновения какого-либо события (например переполнения счетчика таймера) устанавливается аппаратный флаг. В случае если разрешены глобальные прерывания и разрешено прерывание от возникшего события, указателю программной памяти аппаратно присваивается значение из области таблицы векторов прерываний. Какое именно значение зависит от возникшего события. По соответствующему адресу должен стоять вектор, который направляет указатель на обработчик прерывания.... надеюсь понятно))))

PS пока строчил, тут уже все объяснили)

спасибо, не всё, вы как раз таки ответили на то, что я ещё спросил) хотя про указатели итп было бы интересно понять..)
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

т.е. TIMER0_A0_VECTOR - это и есть то, что должно быть в процедуре обработки этого вектора т.е. в Си это будет иметь вид:

В общем и целом правильно.В каждом компиляторе свой синтаксис ообработки прерываний.
И самое важное, не разрешайте прерываний, которые не описаны соответствующей конструкцией. Иначе случится неописанная ситуация в виде регулярного ресета.
dzrkot
Открыл глаза
Сообщения: 75
Зарегистрирован: Чт авг 29, 2013 08:02:24

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

Сообщение dzrkot »

vitalik_1984 писал(а):
т.е. TIMER0_A0_VECTOR - это и есть то, что должно быть в процедуре обработки этого вектора т.е. в Си это будет иметь вид:

В общем и целом правильно.В каждом компиляторе свой синтаксис ообработки прерываний.
И самое важное, не разрешайте прерываний, которые не описаны соответствующей конструкцией. Иначе случится неописанная ситуация в виде регулярного ресета.


ну таки кстати у меня не компилируется это

Код: Выделить всё

__interrupt void TIMER1_A0_VECTOR(void) 
        {

        }

, а если поменять TIMER1_A0_VECTOR на любую тарабарщину, то всё ок, т.е. что-то я не так делаю....нашёл пример с #pragma vector= ...о там для AVR ... бду дальше разгадыватьвсё это))
dzrkot
Открыл глаза
Сообщения: 75
Зарегистрирован: Чт авг 29, 2013 08:02:24

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

Сообщение dzrkot »

вообщем-то нашёл такой пример

Код: Выделить всё

//директиве #pragma vector= нужно указать номер вектора 
// прерывания, список векторов задан в файле iotiny45.h
#pragma vector=PCINT0_vect
//имя PCINT0_routine взято произвольно
__interrupt void PCINT0_routine(void)
{
   __no_operation();
}

непонятно как в данном случае работает #pragma vector= и почему имя PCINT0_routine взято произвольно...
Но по сути моя конструкция должна выглядеть примерно так:

Код: Выделить всё

#pragma vector = TIMER1_A0_VECTOR
__interrupt void TIMER_A0(void)                                                 // прерывание по флагу TA0CCR0 CCIFG0
        {

        }
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Так смотрите внимательнее
Там же написано, что нужно делать #pragma vector=Вектор
Эта директива компилятора она указывает, что следующая процедура является обработкой прерывания по данному вектору.
Любое произвольное название и будет названием этой процедуры.
А если не писать #pragma vector= то нужно пользоваться стандартными функциями
Что это за вектор такой?
TIMER1_A0_VECTOR
В студии есть TIMER1_COMPA_vect может все таки пересмотрите еще раз что там описано в вашем заголовочнике?
И вообще си чувствительно к регистру.
dzrkot
Открыл глаза
Сообщения: 75
Зарегистрирован: Чт авг 29, 2013 08:02:24

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

Сообщение dzrkot »

vitalik_1984 писал(а):Так смотрите внимательнее
Там же написано, что нужно делать #pragma vector=Вектор
Эта директива компилятора она указывает, что следующая процедура является обработкой прерывания по данному вектору.
Любое произвольное название и будет названием этой процедуры.
А если не писать #pragma vector= то нужно пользоваться стандартными функциями
Что это за вектор такой?
TIMER1_A0_VECTOR
В студии есть TIMER1_COMPA_vect может все таки пересмотрите еще раз что там описано в вашем заголовочнике?
И вообще си чувствительно к регистру.

В студии? Я использую IAR for MSP430
там в хедере...
#include "msp430f5435A"

Код: Выделить всё

#define TIMER0_A0_VECTOR    (54 * 2u) /* 0xFFEC Timer0_A5 CC0 */

вот прямо оттуда её копирую
Chettuser

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

Сообщение Chettuser »

Необходимо преобразование на verilog'е
Как я понимаю есть 2 пути - описание математикой и подключением примитива 74185?

Короче говоря - проект на CPLD. Есть поле из 8-ми двоично-десятичных счётчиков и 8-ми регистров с выводом на 7-сегментный дешифратор. Имеет ли смысл переводить систему на двоичные счётчики, или преобразование Bin2BCD сожрет больше памяти чем при использовании двоично-деесятичной системы?
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

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

Сообщение Kavka »

Если я правильно уловил вашу мысль, то вам необходимо считать и выводить 8 десятичных цифр. Если да, то bin2bcd на 8 разрядов потребует существенно больший объём по ресурсам ПЛИС нежели 8 двоично-десятичных счётчиков - надо будет в цикле делить на 10 с вычитанием... Это IMHO.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Chettuser

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

Сообщение Chettuser »

Значит я в правильном направлении думаю )
dzrkot
Открыл глаза
Сообщения: 75
Зарегистрирован: Чт авг 29, 2013 08:02:24

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

Сообщение dzrkot »

в datasheet в таблице регистра отвечающего за состояние портов, настроенных на выход, не указано значение default т.е. после reseta и т.п. ...т.е. их надо все обязательно инициализировать ручками? А что будет если их не инициализировать, они будут в случайном состоянии?
И ещё вопрос, входы, которые висят в воздухе - написано, что лучше их инициализировть как выходы, и программно сажать на землю/питание через подтягивающий резистор, но не сказано что из этого лучше...вообще я подумал что мб есть какое-то правило хорошего тона там или как-то принято это...?Ну т.е. что-то конкретное считается лучшим или принято из этого.
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

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

Сообщение BCluster »

dzrkot писал(а):в datasheet в таблице регистра отвечающего за состояние портов, настроенных на выход, не указано значение default т.е. после reseta и т.п. ...

Не вижу проблемы ) Если ножки не используются - можно с ними ничего не делать, ибо совершенно все равно что там будет, особенно если они настроены на выход. В случае если они используются, в любом случае их надо инициализировать.
dzrkot
Открыл глаза
Сообщения: 75
Зарегистрирован: Чт авг 29, 2013 08:02:24

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

Сообщение dzrkot »

BCluster писал(а):
dzrkot писал(а):в datasheet в таблице регистра отвечающего за состояние портов, настроенных на выход, не указано значение default т.е. после reseta и т.п. ...

Не вижу проблемы ) Если ножки не используются - можно с ними ничего не делать, ибо совершенно все равно что там будет, особенно если они настроены на выход. В случае если они используются, в любом случае их надо инициализировать.

Ну первое - думал мало ли...правила хорошего тона там..))
Со вторым то понятное дело))
Аватара пользователя
Mem
Поставщик валерьянки для Кота
Сообщения: 1915
Зарегистрирован: Вт апр 17, 2012 14:20:59
Откуда: Новокузнецк

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

Сообщение Mem »

oleg63m писал(а):
Mem писал(а):Спасибо за информацию, проверю.

Изображение
все верно, подключаемся к компьютеру, запускаем TCOM и активировав TXD измеряем цепи, с ним связанные (1, 2, 3 ХР3)
если все соответствует уровням...

При перемычке 1-2:

1. 5В
2. 0В
3. 4.82В

При перемычке 2-3:
1. 0В
2. 0В
3. 4.82В

Транзистор цел :))) , выпаял разгромив его. Резисторы целы, получается транзистор не открывается. Найду замену снова замерю.
Главный инженер проекта - человек, который как никто другой знает, что приближаться к спроектированной им хрени близко не стоит.
Аватара пользователя
Mem
Поставщик валерьянки для Кота
Сообщения: 1915
Зарегистрирован: Вт апр 17, 2012 14:20:59
Откуда: Новокузнецк

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

Сообщение Mem »

Поставил BC556, теперь на 2 ноге 4.82В Изображение
Главный инженер проекта - человек, который как никто другой знает, что приближаться к спроектированной им хрени близко не стоит.
Аватара пользователя
oleg63m
Друг Кота
Сообщения: 20132
Зарегистрирован: Чт сен 01, 2011 12:53:27
Откуда: ТьмуТаракания. Почетный житель подмостовья
Контактная информация:

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

Сообщение oleg63m »

я уже и забыл, когда это говорил. :)))
ну всеравно, если получилось-поздравляю :beer: :beer: :beer:
Шекспир сказал: Судить меня -дано лишь Богу, другим я укажу дорогу... https://natribu.org/
Я его полностью поддерживаю.
Программирую на Fuse AtmelAVR.
Аватара пользователя
Mem
Поставщик валерьянки для Кота
Сообщения: 1915
Зарегистрирован: Вт апр 17, 2012 14:20:59
Откуда: Новокузнецк

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

Сообщение Mem »

За большой радостью следует разочарование :( Та же ошибка (-24), надо провода укоротить и пайку качественную сделать :solder: , а то тяп-ляп и готово :)

Надеюсь заработает.

З.Ы. писали 24 июня, а проверить только сейчас захотелось :))
Главный инженер проекта - человек, который как никто другой знает, что приближаться к спроектированной им хрени близко не стоит.
Аватара пользователя
oleg63m
Друг Кота
Сообщения: 20132
Зарегистрирован: Чт сен 01, 2011 12:53:27
Откуда: ТьмуТаракания. Почетный житель подмостовья
Контактная информация:

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

Сообщение oleg63m »

я смотрю на схему и думаю, может вам программатор громова попробовать? схема почти такая же, а деталей меньше.
и вроде работет на более современных компах
http://easyelectronics.ru/avr-shag-pervyj-programmator.html
на понипрога все больше нареканий посл время
Шекспир сказал: Судить меня -дано лишь Богу, другим я укажу дорогу... https://natribu.org/
Я его полностью поддерживаю.
Программирую на Fuse AtmelAVR.
Аватара пользователя
Mem
Поставщик валерьянки для Кота
Сообщения: 1915
Зарегистрирован: Вт апр 17, 2012 14:20:59
Откуда: Новокузнецк

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

Сообщение Mem »

Где-то я видел такой немаленький программатор, туда и громов и другие вошли. Работал от COM и USB, сейчас не вспомню. Правда мне все чаще мысли приходят что лучше купить программатор, только дорогие.
Главный инженер проекта - человек, который как никто другой знает, что приближаться к спроектированной им хрени близко не стоит.
Аватара пользователя
oleg63m
Друг Кота
Сообщения: 20132
Зарегистрирован: Чт сен 01, 2011 12:53:27
Откуда: ТьмуТаракания. Почетный житель подмостовья
Контактная информация:

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

Сообщение oleg63m »

если мысль купить прошивает, посмотри на алибабе или на ебее
Шекспир сказал: Судить меня -дано лишь Богу, другим я укажу дорогу... https://natribu.org/
Я его полностью поддерживаю.
Программирую на Fuse AtmelAVR.
Ответить

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