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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

SarCity писал(а):т.е. у тини861 в регистре TIMSK битом 1 является TOIE0, а у меги8 в этом регистре в бите1 ничего нет, прочерк (по даташиту). Такая же ситуация и с остальными двумя регистрами.
не понятно, с чего вы взяли, что в этих командах идет работа с 1-ым битом регистров? приведенная запись почти аппаратно-независима, поэтому не сомневайтесь: будет работать на обоих МК :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Vergilium
Грызет канифоль
Сообщения: 260
Зарегистрирован: Ср фев 13, 2008 14:41:32
Откуда: Украина, Николаев

Сообщение Vergilium »

Подскажите пожалуста как фиксировать нажатие клавиши на С в WinAVR. Мне нужно в цикле сканировать не нажата ли какая либо клавиша и если нажата выполнять соответствующие действия. Подкинте какой либо примерчик.


ЗЫ. МК мега16
Немного нервов и девайс готов
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

а как можно сделать, чтобы светодиод на любом канале порта мигал все время с определенной частотой? например, 1Гц? это нужно для показателя того, что программа выполняется. НУжны специальные выводы микроконтроллера, или на любой можно вывод светодоид повесить? :?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

в прерывании таймера считать кол-во прерываний, при совпадении числа с заранее установленным - менять значение вывода порта на противоположное.
Ставим плюсы: )
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

т.е. собсна можно на любой канал в порту? :)
Не умеешь - не берись, но не взявшись не научишься...
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Сообщение SII »

На любой, не занятый под какие-нибудь специальные функции.
BAD1
Родился
Сообщения: 2
Зарегистрирован: Пн янв 19, 2009 17:43:49

Сообщение BAD1 »

Можно узнать, какие фьюзы лучше не менять, и на какие ноги лучше ничего не цеплять, чтобы не потерять возможность перепрограммирования? Мега8.

я думаю что нельзя менять SPIEN, RSTDISBL...

и соответствено не использовать ногу RESET и все.
прав ли я?)
Аватара пользователя
Vergilium
Грызет канифоль
Сообщения: 260
Зарегистрирован: Ср фев 13, 2008 14:41:32
Откуда: Украина, Николаев

Сообщение Vergilium »

Прошу извенения за глупый вопрос но сколько должен весить hex фаил для заполнения всей памяти ATmega16. Я думал 16кбайт но видел и до 28кбайт. Как опредилить сколько места осталось чтоб вместится? Может какоето определенное количество строк должно быть?
Немного нервов и девайс готов
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

вы сразу hex пишете??? по-любому в компиляторе есть "указатель запоненной памяти", там и смотрите сколько байт занимает код)))) по другому не могу сформулировать, голова не варит что то))))
Ставим плюсы: )
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Vergilium писал(а):Прошу извенения за глупый вопрос но сколько должен весить hex фаил для заполнения всей памяти ATmega16. ... Как опредилить сколько места осталось чтоб вместится? Может какоето определенное количество строк должно быть?

В обшем случае размер hex файла не говорит о размере прошивки ничего, например возможны случаи когда hex весит 1 кБайт, но прошивка в контроллер не влезет. Дело в том, что этот формат предполагает указание начального адреса и смещения прошиваемой строки. (Т. е. можно указать что начинать прошивку надо с адреса близкого к концу флеш памяти). Если прошивка ведется с нулевого ардеса, то приблизительно прикинуть занимаемое место во флеш можно разделив размер хекса на 2-3. Точный способ - перевести hex в bin формат.
Самый правильный ответ - про указатель занимаемой памяти - в предыдущем посте.
Аватара пользователя
Vergilium
Грызет канифоль
Сообщения: 260
Зарегистрирован: Ср фев 13, 2008 14:41:32
Откуда: Украина, Николаев

Сообщение Vergilium »

Я так понимаю сдесь говорится что занято 3.182 кбайта т.е. 19,4%. А что за второе значение 60 байт?

AVR Memory Usage
----------
Device: atmega16

Program: 3182 bytes (19.4% Full)
(.text + .data + .bootloader)

Data: 60 bytes (5.9% Full)
(.data + .bss + .noinit)

-------- end --------
Немного нервов и девайс готов
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

в микроконтроллере есть несколько видов памяти. FLASH,SRAM,EEPROM. так вот программный код записывается во FLASH. второе число, как я понимаю это SRAM (ОЗУ).
Ставим плюсы: )
Аватара пользователя
Vergilium
Грызет канифоль
Сообщения: 260
Зарегистрирован: Ср фев 13, 2008 14:41:32
Откуда: Украина, Николаев

Сообщение Vergilium »

Еще один вопросик. Как расчитать тайменги для вывода на светодиодную матрицу динамического изображения. Ну допустем у меня 6 матриц 8х8 светодиодов, получается 48 столбиков. Вот какая должна быть длительность свечения одного столбика чтобы изображение не мерцало и яркость была нормальная. Может какието рекомендации или методики есть.
Немного нервов и девайс готов
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

человеческий глаз не замечает мерцания частотой 25Гц (слышали, что такое 25ый кадр?). я бы посоветовал больше, порядка 50-60Гц, для верности.если такое широкое изображение, то желательно индикацию делать не по строчно, а через строку (т.е. сначала четные строки, потом нечетные), что тоже положительно влияет на реалистичность картинки.
Ставим плюсы: )
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

У меня есть переменная в 1 байт (8 бит) можно както менять значение конкретного бита??? например мне нужно что бы 4-ый бит стал единицей, а все остальные остались так как были до этого.
Я не Сашок!!!
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

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

Логическое ИЛИ с маской..
Например для твоего случая маска 0001000..
Если надо ноль выставить, то логическое И и маску инвертировать..
..
Если битов несколько, то единичек и нулей в масках тоже будет несколько....
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

А ещё, в целях манипуляции отдельными битами и группами битов, можно воспользоваться битовыми полями, тогда становятся простыми разные арифметические операции, операции сравнения, использование группы битов в качестае счетчиков циклов и т.д.
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Спасибо!!! Мне не нужно делать никаких арифметических операций, мне просто при определёных условиях нужно установить нужные биты в "1" и "отправить" их на сдвиговый регистр 74hc164 :)
Я не Сашок!!!
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

для этого есть команды SBI и CBI.
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

sachok писал(а):Спасибо!!! Мне не нужно делать ...
Как ни странно, оба способа подходят и к такой постановке задачи. Выбирай сам. :)))

Stalker46 писал(а):для этого есть команды SBI и CBI.
Ему биты выставлять нужно - в переменной, а не на выходах порта; ты описание этих инструкций-то прочёл, перед тем, как советовать? Изображение
Ответить

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