SarCity писал(а):т.е. у тини861 в регистре TIMSK битом 1 является TOIE0, а у меги8 в этом регистре в бите1 ничего нет, прочерк (по даташиту). Такая же ситуация и с остальными двумя регистрами.
не понятно, с чего вы взяли, что в этих командах идет работа с 1-ым битом регистров? приведенная запись почти аппаратно-независима, поэтому не сомневайтесь: будет работать на обоих МК
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Подскажите пожалуста как фиксировать нажатие клавиши на С в WinAVR. Мне нужно в цикле сканировать не нажата ли какая либо клавиша и если нажата выполнять соответствующие действия. Подкинте какой либо примерчик.
а как можно сделать, чтобы светодиод на любом канале порта мигал все время с определенной частотой? например, 1Гц? это нужно для показателя того, что программа выполняется. НУжны специальные выводы микроконтроллера, или на любой можно вывод светодоид повесить?
Не умеешь - не берись, но не взявшись не научишься...
Прошу извенения за глупый вопрос но сколько должен весить hex фаил для заполнения всей памяти ATmega16. Я думал 16кбайт но видел и до 28кбайт. Как опредилить сколько места осталось чтоб вместится? Может какоето определенное количество строк должно быть?
вы сразу hex пишете??? по-любому в компиляторе есть "указатель запоненной памяти", там и смотрите сколько байт занимает код)))) по другому не могу сформулировать, голова не варит что то))))
Vergilium писал(а):Прошу извенения за глупый вопрос но сколько должен весить hex фаил для заполнения всей памяти ATmega16. ... Как опредилить сколько места осталось чтоб вместится? Может какоето определенное количество строк должно быть?
В обшем случае размер hex файла не говорит о размере прошивки ничего, например возможны случаи когда hex весит 1 кБайт, но прошивка в контроллер не влезет. Дело в том, что этот формат предполагает указание начального адреса и смещения прошиваемой строки. (Т. е. можно указать что начинать прошивку надо с адреса близкого к концу флеш памяти). Если прошивка ведется с нулевого ардеса, то приблизительно прикинуть занимаемое место во флеш можно разделив размер хекса на 2-3. Точный способ - перевести hex в bin формат.
Самый правильный ответ - про указатель занимаемой памяти - в предыдущем посте.
в микроконтроллере есть несколько видов памяти. FLASH,SRAM,EEPROM. так вот программный код записывается во FLASH. второе число, как я понимаю это SRAM (ОЗУ).
Еще один вопросик. Как расчитать тайменги для вывода на светодиодную матрицу динамического изображения. Ну допустем у меня 6 матриц 8х8 светодиодов, получается 48 столбиков. Вот какая должна быть длительность свечения одного столбика чтобы изображение не мерцало и яркость была нормальная. Может какието рекомендации или методики есть.
человеческий глаз не замечает мерцания частотой 25Гц (слышали, что такое 25ый кадр?). я бы посоветовал больше, порядка 50-60Гц, для верности.если такое широкое изображение, то желательно индикацию делать не по строчно, а через строку (т.е. сначала четные строки, потом нечетные), что тоже положительно влияет на реалистичность картинки.
У меня есть переменная в 1 байт (8 бит) можно както менять значение конкретного бита??? например мне нужно что бы 4-ый бит стал единицей, а все остальные остались так как были до этого.
Логическое ИЛИ с маской..
Например для твоего случая маска 0001000..
Если надо ноль выставить, то логическое И и маску инвертировать..
..
Если битов несколько, то единичек и нулей в масках тоже будет несколько....
А ещё, в целях манипуляции отдельными битами и группами битов, можно воспользоваться битовыми полями, тогда становятся простыми разные арифметические операции, операции сравнения, использование группы битов в качестае счетчиков циклов и т.д.
Спасибо!!! Мне не нужно делать никаких арифметических операций, мне просто при определёных условиях нужно установить нужные биты в "1" и "отправить" их на сдвиговый регистр 74hc164