![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
tima705 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 2.6.2007 Репутация: нет Всего: нет |
Здравствуйте, уважаемые. Прошу Вас "разжевать" мне работу с АЦП на меге16. Очень хочется, а инет не дал нужной инфы.. Буду очень признателен.
Код:
/* И еще такой вопрос. Обязательно ли обращаться к АЦП в прерывании? Нельзя ли это делать в главной функции, когда это необходимо. Типо void main(void) { PARAM = АЦПМК if (PARAM > 0) {..} } */ Думаю, вопросы понятны... Спасибо заранее! Это сообщение отредактировал(а) tima705 - 29.10.2011, 13:17 |
|||
|
||||
Mazzi |
|
|||
![]() Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
На сайте производителя есть файлы-аппноуты для каждого микроконтроллера с примерами работы для всех внутренних устройств. Почитайте, узнаете много нового для себя.
-------------------- Мне нужны помощники. |
|||
|
||||
tima705 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 2.6.2007 Репутация: нет Всего: нет |
Обычно такие ответы и поступают. Mazzi, я в первую очередь покопался на atmel.com... Я очень плохо понимаю юсовский, вытекающе и даташиты с переводов на 20% курю.. Что ессно не достаточно. С программированием АВР на си сталкивался единожды.. СИ же с исходников вообще туго)) (Ближе паскаль-делфи..) Вот и прошу именно "разжевать".. "на пальцах", что называется.. Я бы не стал создавать ветку, если бы смог разобраться сам. Вопросы вполне конкретные, прошу Вас уделить мне немного времени на разъяснение сих) Спасибо. |
|||
|
||||
UniBomb |
|
||||||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Не надо лукавить ![]()
![]() Результат преобразования хранится в двух регистрах - ADCH и ADCL. Но разные реализации стандартной библиотеки могут немного упрощать работу. Так например в avr-libc, идущей в комплекте к avr-gcc результат сохраняется в переменную ADCW. Это не зависит от кварца. Никак. Кварц определённой частоты впаивается и не изменяется. Тут более уместен другой вопрос - а как выбрать необходимый режим тактирования? С помощью fuse-битов CKSEL3...CKSEL0 Управление мультиплексором (т.е. выбор "ножки" считывания) осуществляется битами MUX3...MUX0. Для выбора ADC2 в эти быти надо записать значение 0010(2) Разрешение общего прерывания. Без установки бита I регистра SREG (что и делает эта команда) ни одно прерывание не сработает.
Можно обращаться в любой момент времени и в любой части программы. Но ведь прерывания не просто так придумали. О наступлении момента "когда это необходимо" можно узнать либо по прерыванию, либо при постоянном опросе регистров состояния модуля. В зависимости от задачи постоянный опрос может быть не приемлем, потому что за это время можно сделать кучу другой полезной работы. И на будущее - не задавай вопросы в таком виде, т.к. это как видишь приводит к оверквоттингу. И совсем на будущее - купи себе эту книгу. В ней содержится вся необходимая информация, т.к. она представляет из себя обобщённый перевод оригинальных даташитов. |
||||||
|
|||||||
tima705 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 2.6.2007 Репутация: нет Всего: нет |
Все-таки придется самому)) За книгу спасибо! Уже читаю. ОЧЕНЬ полезная книга.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |