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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

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

Сообщение SubDia »

SII писал(а):Тогда уже не с БИОС, а с параметрами БИОС Сетуп.

Да-да, именно это и имелось в виду.
Jack_A писал(а):В TQFP тоже разок пробовал, работало, но повторить еще раз не хочется - геморрно чересчур.

Я тоже не считаю, что это уж очень полезный опыт. Производитель и так сделал для меня максимум - обеспечил удобными выводами. А уж если я их сломал, то, как говорится, сам себе злой буратин. =))
Jack_A писал(а):Тогда жизнь становится еще краше : перейти на внутреннее тактирование

Кстати, вот на что я не обратил внимание - так это на то, что проблемы-то начались как раз после перехода с внутреннего тактирования на внешнее. Нет бы сразу сообразить, и сходу решить проблему, так нет - полночи кварцы с кондерами перепаивал, да на SCK жмакал шилом.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

А вот скажите мне други такую вещь: прошил заводскую мегу16 фьюзами на внешнее тактирование CKSEL3..0= 0000 SUT10= 00. Ошибся. Естественно заткнулась. - Хех!- подумал я. - Это ж мы поправим как два пальца. Беру мегу64, шью ее на тупо качать частоту на PD2(выход), подцепляю к XTAL1 меги16, включаю. -А вот тебе на воротник,- говорит мне 16-ая. - Не хочу, не буду. - Ладно,-говорю я и меняю частоту, генерируемую 64-ой. - А я все равно не хочу,- отвечает 16-ая. Короче, после множества частот и попыток на следующий день по старой памяти паяю гену на CD40.. и цепляю на 16-ую. - Вот теперь тебя люблю я, вот теперь тебя хвалю я!- откликается 16-ая. Вижу ее, прошиваю фьюзы на работу с кристаллом, все хорошо. В чем прикол? Выход меги не раскачивает XTAL1?
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

вопросик:
вот сдесь, в обучалке, http://www.radiokot.ru/start/mcu_fpga/avr/08/ рассказывается о стеке и его применение................, и приводится кусок проги мигания светодиодами. Вся прога мне понятна кроме обведенной части. Какую она несет функцию, как на меня так и без нее светодиоды моргали б..........???
Изображение
Tell Me The Truth
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Без настройки порта В на выход ничего бы не моргало. Без настройки стека выход из подпрограммы задержки происходил бы куда попало, а не на следующую после call команду.
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

pyzh_man писал(а):Без настройки порта В на выход ничего бы не моргало.

почему ?
ведь когда я напишу
ldi Temp,0b00000001
out PortB,Temp

то и так должно все замигать :dont_know:
pyzh_man писал(а):Без настройки стека выход из подпрограммы задержки происходил бы куда попало, а не на следующую после call команду

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

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

Сообщение pyzhman »

Назначение DDRB не знаете?
Как работают rcall и ret не прочитали?

Вы что, в теории все изучаете? Паяльник в розетку и пробовать!
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

pyzh_man писал(а):Назначение DDRB не знаете?

это регистр вывода, что будет записано в нем, то будет и на соответствующих ножках.
pyzh_man писал(а):Как работают rcall и ret не прочитали?

первая команда вызывает подпрограмму а вторая возвращает рабочую точку на сроку ниже за вызовом.....
pyzh_man писал(а):Вы что, в теории все изучаете?

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

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

Сообщение pyzhman »

FreshMan писал(а):это регистр вывода, что будет записано в нем, то будет и на соответствующих ножках.

А зачем тогда PORTB?
FreshMan писал(а):первая команда вызывает подпрограмму а вторая возвращает рабочую точку на сроку ниже за вызовом.....

А сам процесс вызова и возврата? И что такое рабочая точка?
FreshMan писал(а):я думаю

Не надо думать, надо делать. Думать будете потом. Осознавать. :)
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

pyzh_man писал(а):А зачем тогда PORTB?

извиняюсь перепутал: DDRX говорит какой канал настроен на ввод а какой на вывод............
FreshMan писал(а):А сам процесс вызова и возврата?

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

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

Сообщение pyzhman »

FreshMan писал(а):DDRX говорит какой канал настроен на ввод а какой на вывод....

Ну, теперь-то сложилось?
FreshMan писал(а):возвращает рабочую точку обратно...

А куда и самое главное где "обратно" он помнит?
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

pyzh_man писал(а):Ну, теперь-то сложилось?

это я муже понял :))

pyzh_man писал(а):А куда и самое главное где "обратно" он помнит?

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

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

Сообщение pyzhman »

FreshMan писал(а):а как ему это стек укажет ?

адрес возврата (адрес следующей после call команды) хранится в стеке. В стек этот адрес помещается при выполнении команды call. Поэтому указатель стека SP должен находится в ОЗУ. А чтобы не мешался под ногами, его изначально указывают в самом верху, полагая что данные, отведенные под переменные туда не доберутся(чем грешит С, но это уже совсем другая история) или стек не наползет на эти переменные.
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

ага.............., так вот тут какая петрушка :)) ...., кажется понял............., пойду переваривать :)))
спасибо, просьба не обижаться за недопонимание :))
Tell Me The Truth
lix
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 17, 2010 15:32:19
Откуда: Курган

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

Сообщение lix »

вопросец по динамической индикации.
есть светодиодная матрица, аноды(строки) подключены к порту C меги32. столбцы через транзисторы на общий провод. они управляются сдвиговыми регистрами 74HC164.

вот код прерывания

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

ISR(TIMER1_COMPA_vect)
{
    static uint8_t currentColumn = 0;
    // гашение текущего столбца
#ifdef CAT
    ROW_PORT = 0x00;
#else
    ROW_PORT = 0xFF;
#endif
    ROW_PORT ^= 0xFF;
    SR_CLKPULSE();  // включаем следующий столбец.
    if(currentColumn==COLUMNS)
    {
        currentColumn = 0;
        // запись единички в разряд нулевого столбца
        SR_WRITEONE();
        SR_CLR_DATALINE();
        if( flags&NEED_REFRESH_FLAG)
        {
           register uint8_t *temp;
            temp = DISPLAY;
            DISPLAY = S_BUFFER;
            S_BUFFER = temp;
            flags &= ~NEED_REFRESH_FLAG;
        }
    }
#ifdef CAT
    ROW_PORT = DISPLAY[currentColumn];
#else
    ROW_PORT = ~DISPLAY[currentColumn];
#endif
    currentColumn++;
}


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

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

Сообщение pyzhman »

FreshMan писал(а):просьба не обижаться за недопонимание

Какие тут обиды. А нервные клетки и так уже не восстановить. :)
Docendo discimus
Аватара пользователя
ximik
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Вс ноя 07, 2010 14:48:55
Откуда: Москва

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

Сообщение ximik »

Скажите а при перепрашивке мк AVR там что ни будь важное стирается?? (как например в пиках установочная константа)
Если болит голова, значит она есть!)
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

ximik писал(а):Скажите а при перепрашивке мк AVR там что ни будь важное стирается??

Сначала стирается вся память, в которую заливается прошивка (флэш, еепром), затем заливается вся прошивка. Всё.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
ximik
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Вс ноя 07, 2010 14:48:55
Откуда: Москва

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

Сообщение ximik »

Gudd-Head писал(а):Сначала стирается вся память, в которую заливается прошивка (флэш, еепром), затем заливается вся прошивка. Всё.

Если я правильно понял то мк AVR можно тупо стереть, а потом записать новую прошивку?, не записывая на листочках всяких там констант)))
Если болит голова, значит она есть!)
Аватара пользователя
shurikss123
Грызет канифоль
Сообщения: 271
Зарегистрирован: Пн окт 25, 2010 20:47:04
Откуда: Казахстан, Астана

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

Сообщение shurikss123 »

lix писал(а):вопросец по динамической индикации.
есть светодиодная матрица, аноды(строки) подключены к порту C меги32. столбцы через транзисторы на общий провод. они управляются сдвиговыми регистрами 74HC164.

вот код прерывания

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

ISR(TIMER1_COMPA_vect)
{
    static uint8_t currentColumn = 0;
    // гашение текущего столбца
#ifdef CAT
    ROW_PORT = 0x00;
#else
    ROW_PORT = 0xFF;
#endif
    ROW_PORT ^= 0xFF;
    SR_CLKPULSE();  // включаем следующий столбец.
    if(currentColumn==COLUMNS)
    {
        currentColumn = 0;
        // запись единички в разряд нулевого столбца
        SR_WRITEONE();
        SR_CLR_DATALINE();
        if( flags&NEED_REFRESH_FLAG)
        {
           register uint8_t *temp;
            temp = DISPLAY;
            DISPLAY = S_BUFFER;
            S_BUFFER = temp;
            flags &= ~NEED_REFRESH_FLAG;
        }
    }
#ifdef CAT
    ROW_PORT = DISPLAY[currentColumn];
#else
    ROW_PORT = ~DISPLAY[currentColumn];
#endif
    currentColumn++;
}


вроде бы все правильно. но почему же происходит засветка соседних столбцов?

ниче не понятно что такое SR_WRITEONE(); и SR_CLR_DATALINE();
не проще ли сделать так два сдвиговых регистра с общим clock и записывать в них одновременно.
а может надо сделать маленькую задержку(не успевает потухнуть диод)?
Последний раз редактировалось shurikss123 Пн июл 18, 2011 22:54:07, всего редактировалось 1 раз.
Изображение
Мастер на все руки, кручу, кручу, кручу и матерюсь
Повелитель паяльной станции, лома, и пинцета!!!
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

Gudd-Head писал(а):Сначала стирается вся память, в которую заливается прошивка (флэш, еепром), затем заливается вся прошивка. Всё.


Если выставить фьюз EESAVE, то при прошивке EEPROM сохраняется.
Ответить

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