Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Пн янв 01, 2007 13:32:54

Tohey писал(а):А в чём разница между внутреним тактовым генератором и внешним кварцевым резонатором? Когда что лучше использовать?
Или кварц просто используют для "экзотических" скоростей?

Внутренний хорошо использовать, если необходимо высвободить дополнительные 2 линии порта, высвободить место на плате и когда не требуется четкая точность временных интервалов.

Сб янв 06, 2007 02:40:53

а вот такой вопрос есть ли команда позволяющая устанавливать/сбрасывать 1 бит в РОН в атмелах?

нашёл есть команда sbi/cbi но работает только с регистрами ввода/вывода

Сб янв 06, 2007 11:55:28

Есть такие команды: CBR и SBR. Ещё иногда очень удобно использовать команды BLD и BST чтения/записи флага Т в/из регистров.

Сб янв 06, 2007 17:42:53

а это лучше чем у микрочипов, но это команда не битовая... это логическая и арифмитеческая, а я искал в битовых, мдаа...
спасибо[/code]

Чт янв 11, 2007 03:48:42

Доброй всем ночи, всего пару недель изучаю АВР’ы, и всех тонкостей ещё не знаю, не бейте сильно, если спрошу или напишу глупость. У меня вопрос про таймер компаратор контроллера ATtiny2313, который меня уже второй день мучает. Пишу программку “Терморегулятор”, к контроллеру подключены 2 кнопки для настройки рабочей температуры, после нажатия на любую из кнопок, программа переходит в режим настройки, который длиться до прерывания от компаратора таймера 1(~9 сек), после чего программа опять переходит в режим регулирования температуры. Ну так вот, нажимаю кнопку, включается режим настройки, настраиваю, жду 9 секунд, программа возвращается в обычный режим, все нормально. Но, если программа в обычном режиме работает больше 9 секунд, то при нажатии какой либо из кнопок, сразу после перехода в режим настройки, компаратор срабатывает и программа возвращается в обычный режим, хотя по идеи, должно как минимум 9 секунд пройти. (Прошу прощения за сумбур, с трудом смог хоть так описать проблему)
Во вложении приведен тот кусок кода, который отвечает за всё это безобразие.
Вложения
prog.txt
(1.55 KiB) Скачиваний: 664

Чт янв 11, 2007 10:10:20

Как то интересно у тебя в обработке Reset появляется tmp1, хотя ты её не объявлял и напиши как ты в нормальный режим переходишь выложи весь код.

Чт янв 11, 2007 12:26:40

Для облегчения чтения, я изменил Tmp1 на просто Tmp, а в секции Reset некоторые Tmp1, случайно пропустил.
Режим настройки отличается от обычного лишь пропуском опроса датчика. Я могу выложить полностью всю прогу, но она аж17 кб весит, у вас есть желание её просмотреть?

Чт янв 11, 2007 17:41:56

выложи файлом посмотрю

Чт янв 11, 2007 18:01:21

Собственно вот, я код немного сократил, явно не нужные части заменил описанием, надеюсь, что понять будет не сложно :)

P.S.
Хочу заметить, что все работает нормально, за исключением этого небольшого глюка.
Вложения
prog2.txt
(8.97 KiB) Скачиваний: 837

Чт янв 11, 2007 21:37:54

ЗАВТРА ПОСМОТРЮ И ЕСЛИ ЧТО НАЙДУ НАПИШУ.

Пт янв 12, 2007 00:22:07

С проблемой я таки разобрался, сожалею, что, возможно, кому-то пришлось в мою писанину вникать.
А проблема решилась просто, достаточно было в прерывании, предделитель таймера на 0 изменить, тем самым остановить его. Раньше я просто запрещал прерывания, а таймер сам по себе тикал.
Это что выходит, если таймер-компаратор уже настроен, но прерывания от него запрещены, он досчитывает до нужного значения, выставляет какой то флаг, сигнализирующий систему о прерывании, и как только прерывания разрешаются, оно тут же срабатывает?

P.S.
Если кто-то всё же успел вникнуть в исходник, вероятно, он обнаружил какие нибудь просчеты в логике, буду рад, если мне об этом тоже станет известно :)

Пт янв 12, 2007 11:00:02

У проблем как известно не одно решение. Почему так получалось? вот ответ: по прошествии времени при совпадении устанавливается флаг OCF1A(/B/C) региста TIFR поскольку прерывание запрещено счётчик дальше считает устанавливает флаг переполнения сбрасывается и т.д. при включении режима настройки ты обнуляешь счётный регистр однако флаг остаётся установлен (обработчик прерывания его авт. сбрасывает) и при разрешении прерывания естественно у тебя запускается обработчик т.е. тебе при входе в режим установки надо сбрасывать OCF1A. Посмотри в дате конфигурацию регистра TIFR для своего контроллера.

Пт янв 19, 2007 21:19:37

Друзья помогите начинающему программисту мк! Хочу сделать программатор и бегущие огоньки из учебника! Ноне могу найти АТ90s2313(в магазине сказали что такие у них больше не продаются)! Подскажите чем заменить! Изменятся ли номиналы резисторов и конденсаторов после замены, какой брать кварц! Или же схема программатора останется прежней!?

Сб янв 20, 2007 15:37:19

Аппаратная часть программатора может остаться прежней, потребуется новое программное обеспечение, поддерживающее этот контроллер.
Программа для самого контроллера может остаться прежней, при условии включения в ATtiny режима совместимости.
А тема по прошивке вот, ищите внимательнее: http://www.radiokot.ru/forum/viewtopic. ... attiny2313

Пн янв 29, 2007 15:14:06

Я в своё время 2313 тоже не нашёл, взял atmega8, не зразу но зароботало. Не работало у меня т.к. я не зделал бесконечного цикла.

Вт янв 30, 2007 02:35:44

А как можно сложить 2 16-битный числа на mega8 например?

Вт янв 30, 2007 08:03:42

Смотри "Библию программистов": Д.Кнут "Искусство программирования", там подробно все основные алгоритмы расписаны.

Вт янв 30, 2007 16:47:53

Скачал, посмотрел - куча формул и теорем :cry:.
А есть что то практичней? Какой то пример кода, какая то библиотечка и т.д..?

Вт янв 30, 2007 16:50:14

Напиши на чём пишешь Си или асма

Вт янв 30, 2007 18:16:37

На АСМе пишу
Ответить