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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
smihan99
Электрический кот
Сообщения: 1031
Зарегистрирован: Вт фев 14, 2012 21:20:42
Откуда: Московское Царство.

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

Сообщение smihan99 »

хочу заниматься МК, но нет ни программматора, ни МК. вопрос: какой лучше брать МК и для него какой собрать программатор :)
"Не спорьте с идиотами, не то вы опуститесь до их уровня и они задавят вас своим опытом." (с) Марк Твен
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

Chiaki74
Родился
Сообщения: 3
Зарегистрирован: Пн мар 19, 2012 13:52:59

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

Сообщение Chiaki74 »

Здраствуйте, вопрос по микроконтроллеру ATmega164P-20PU:
из дата шита "Прерывание и возобновление работы по изменению состояния на выводе"
Как поведет себя устройство если изменится состояние сразу на нескольких ножках?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

Chiaki74 писал(а):Как поведет себя устройство если изменится состояние сразу на нескольких ножках?

Есть соотв. ножки для прерываний. При изменении состояния (если прерывания на этих ногах разрешены) МК пойдёт обрабатывать сначала то прерывание (если они произойдут одновременно), у которого выше приоритет. Затем следующее.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

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

Сообщение Engineer_Keen »

Странный вопрос. Как запрограммируете, так и поведет... Если имеете ввиду ножки PCINT, то там на каждый порт свой вектор прерывания, если уровень изменится одновременно на разных ножках разных портов, программа сначала перейдет на тот вектор, у которого адрес меньше (так если я не ошибаюсь у них приоритеты расставлены).
Последний раз редактировалось Engineer_Keen Пн мар 19, 2012 14:10:18, всего редактировалось 1 раз.
Chiaki74
Родился
Сообщения: 3
Зарегистрирован: Пн мар 19, 2012 13:52:59

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

Сообщение Chiaki74 »

Gudd-Head писал(а):Есть соотв. ножки для прерываний. При изменении состояния (если прерывания на этих ногах разрешены) МК пойдёт обрабатывать сначала то прерывание (если они произойдут одновременно), у которого выше приоритет. Затем следующее.

просто как я понял, у этого микроконтроллера все линии ввода/вывода c поддержкой прерывания)хотите сказать для каждого из них можно написать отдельную подпрограмму и установить приоритет?))
Engineer_Keen писал(а):Странный вопрос. Как запрограммируете, так и поведет...

спасибо, то что нужно)

Оверпостинг и оверквотинг на первый раз поправил. В дальнейшем пользуйтесь кнопкой "Правка"
Gudd-Head
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

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

Сообщение Engineer_Keen »

На конкретную ножку вектора есть только для INT0,INT1,INT2. Прерывания PCINT-PCINT срабатывают при изменении состояния любой из ног в пределах одного порта (при условии что эти ноги заданы в соответствующих регистрах PCMSK). Если вы хотите иметь разные подпрограммы для каждой ножки, то уже в самом обработчике прерывания нужно определять какая нога порта изменилась и в соответствии с этой информацией переходить к конкретной подпрограмме.
Chiaki74
Родился
Сообщения: 3
Зарегистрирован: Пн мар 19, 2012 13:52:59

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

Сообщение Chiaki74 »

Engineer_Keen писал(а):На конкретную ножку вектора есть только для INT0,INT1,INT2. Прерывания PCINT-PCINT срабатывают при изменении состояния любой из ног в пределах одного порта (при условии что эти ноги заданы в соответствующих регистрах PCMSK). Если вы хотите иметь разные подпрограммы для каждой ножки, то уже в самом обработчике прерывания нужно определять какая нога порта изменилась и в соответствии с этой информацией переходить к конкретной подпрограмме.

спасибо за разъяснения,очень помогли.
Аватара пользователя
Acinonyx
Родился
Сообщения: 12
Зарегистрирован: Пн апр 12, 2010 15:14:52
Откуда: Москва
Контактная информация:

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

Сообщение Acinonyx »

приобрел на сантеке ( http://www.suntekstore.co.uk/product-14 ... apter.html ) USBasp программатор.
по началу не было никаких проблем, всякие атмеги 8/16/32 шьет на ура.
недавно понадобилось разработать девайс на 13 тиньке. сделал простой переходник с ISP разъема на SO-8, и получил жуткую головную боль.
проблема №1 - единственная программа которая увидела тиньку это eXtreme Burner AVR, другие (аврдуд, хазам) не видели ее вообще (важное замечание - тот же аврдуд и хазам прекрасно шили и читали атмеги 8/16/32). причем пробовал разные тиньки, и 13v, которая валялась у меня в загажнике, и новую 13а.
проблема №2 - экстримбёрнер считывает тиньку, считывает фузы и калибровочные байты. но записывает как-то странно, пишет 32 байта FFы затем 32 байта прошивки, опять 32 байта FFы, опять 32 байта прошивки, и так далее.

не знаю в какую сторону копать, может кто подскажет?
-Трансформатор!
-Я!
-Выйти из строя!
-Есть!
Chettuser

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

Сообщение Chettuser »

smihan99 писал(а):хочу заниматься МК, но нет ни программматора, ни МК. вопрос: какой лучше брать МК и для него какой собрать программатор :)

Сразу на ARM, не забивайте голову всякими AVR, Mega'ми, Tit'kami, Pic'ами и прочим "ширпотребом".
Например программатор-отладчик сразу на борту с STM32-Discovery. Камень там низкопотребляющей серии STM32L152RB.
Отдельный отладчик (например ST-Link) стоит подороже. Можно попробовать собрать MT-Link, но для него придётся найти AT91xxxx (не помню какой) и прошить.

В конце концов конечно Вам выбирать на чём остановиться. Из плюсов STM (про LPC и др. не знаю) - почти все камни с одинаковым количеством ножек взаимозаменяемы, например вместо слабенького МК можно поменять в будущем (если не хватит мощей) на более мощный.

Вот ссыль ТЫЦ где можно посмотреть на программаторы, их цену, и там же есть документация.
А тут, ТЫЦ на МК, в данном случае с ядрами ARM.
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

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

Сообщение MS24 »

Ребят подскажите, у меня есть 12 кнопок и 12 диодов, должен гореть всегда только один диод, если зажигается следующий то предидущий должен гаснуть. Как мне с помощью массива реализовать данный алгоритм? Или просто сделать его короче, что бы не писать каждый порт по отдельности?
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Массив-то причем здесь?
Docendo discimus
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

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

Сообщение Engineer_Keen »

Во-первых не совсем понятно какое взаимодействие с кнопками.
Во-вторых, чтобы что-то менять в алгоритме, его нужно для начала увидеть.
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

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

Сообщение MS24 »

Ну обычно реализуют через Массив, или я не прав?
Алгоритма нет еще пока (( я даже не знаю как его написать, пока лишь сделал так
if((PINA & (1<< PINA0)) == 0)
{
PORTC = 0xff;
PORTD = 0xff;
PORTC = 0x00000001;
}
if((PINA & (1<< PINA1)) == 0)
{
PORTC = 0xff;
PORTD = 0xff;
PORTC = 0x00000010;
}
и т.д.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Ткни пальцем где тут массив?
Docendo discimus
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

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

Сообщение MS24 »

Вот я и спрашиваю, как сократить данный алгоритм? каким образом, здесь нет массива.
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

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

Сообщение MS24 »

может еще подскажите, почему этот код выдает ошибку? пишу в codevision

#include <mega128.h>
#define StartConvAdc() ADCSRA |= (1<<ADSC)
#define KEY_NULL 0
#define KEY_S1 1
#define KEY_S2 2
#define KEY_S3 3
#define KEY_S4 4


void main(void)
{
//настраиваем порты
DDRA = 0xff;
PORTA = 0xff;
DDRF = 0xff;
PORTF = 0xff;
DDRE = 0xff;
PORTE = 0xff;

while (2)
{
if ((PINA & (1<< PINA0)) == 0)
{

main1 (1);
}


}
}

void main1 (void)
{
// any code
}
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Слишком неправильно все написано.
Docendo discimus
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

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

Сообщение MS24 »

а что именно не правильно? мне нужно при условии в одной функции, перейти к другой.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

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

Сообщение Engineer_Keen »

А кучу одинаковых IF-ов лучше заменить на Switch-case. Массив тут по-моему не нужен...

И какую ошибку выдает код?
Ответить

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