roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 июн 2025, 00:24

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: АЦП на ATmega8
СообщениеДобавлено: 21 окт 2010, 21:37 
Не в сети

Зарегистрирован: 03 ноя 2009, 22:47
Сообщения: 4
Откуда: Москва
Добрый день всем!
Пишу диссертацию по одной системе, где необходимой составляющей является АЦП. Задача в первом приближении проста: необходимо преобразовать аналоговый сигнал в код и выдать его на порт. Столкнулся со следующей проблемой: независимо от того находится ли АЦП в режиме многократного преобразования или я инициализирую однократный запуск самостоятельно в цикле, преобразование аналогового сигнала в код происходит только ОДИН раз, дальше необходимо либо сбрасывать контроллер, либо отключать и подключать питание к нему заново. Помогите пожалуйста, уже не знаю что и делать, как только не пробовал. :cry:
Поскольку АЦП раньше никогда не программировал не бейте сильно за косяки, вот код:
;Подключаемые файлы:
.nolist
.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m8def.inc"
.list

;====================================
;Начало программы:
.org $0000
rjmp Init ;Переход на секцию инициализации
rjmp ADC_Complete ;Прерывание от АЦП
.org $0030
;====================================
;Обработчик прерывания:
ADC_Complete:
in r17,ADCL
out PortD,r17
reti

;====================================
Init:
;Инициализация стека:
ldi r16,low(RAMEND)
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16


;Инициализация АЦП:
ldi r16,0x00
out admux,r16
ldi r16,0xFE
out ADCSRA,r16

;;Инициализация Портов:
ldi r16,0b11111111
out DDRD,r16

sei ;разрешение прерываний
;====================================
;Основное тело программы:
Start:

rjmp Start


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на ATmega8
СообщениеДобавлено: 21 окт 2010, 22:59 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
а какой там вектор у прерывания по АЦП? 0x02 чтоль?

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на ATmega8
СообщениеДобавлено: 22 окт 2010, 09:43 
Не в сети

Зарегистрирован: 03 ноя 2009, 22:47
Сообщения: 4
Откуда: Москва
я там ошибся чуточку. Вектор у АЦП 0х0Е. Это я уже исправил, но результат не изменился (он без исправления все равно на него попадал, только только немного кривым способом - он переходил на $000Е, а дальше добегал до адреса $0030, где и был написан обработчик прерывания, но щас я исправил и тут ошибки уже нет). Т.е. код такой должен быть:

.org $0000
rjmp Init ;Переход на секцию инициализации
.org $000Е
rjmp ADC_Complete ;Прерывание от АЦП
.org $0030

Я даже не знаю что и предположить, в чем косяк? Я попробовал уже на двух прогах написать: на AVR Studio и на AlgorithmBuilder - думал может дело в проге, результат одинаковый. Может в схеме ошибка? да вроде тоже все просто AREF=+5В, AVCC=+5В, VCC=+5В, на всход ADC0 подаю сигнал, что тут может быть не так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на ATmega8
СообщениеДобавлено: 22 окт 2010, 10:59 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
симуляторы кривые - на железе все жужжит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на ATmega8
СообщениеДобавлено: 22 окт 2010, 11:25 
Не в сети
Аватара пользователя

Зарегистрирован: 20 сен 2007, 11:44
Сообщения: 491
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич
Маркс пишет так:


Вложения:
434tr3etgerr.JPG
434tr3etgerr.JPG [ 121.46 КиБ | Просмотров: 3106 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на ATmega8
СообщениеДобавлено: 22 окт 2010, 11:43 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
да там не в этом дело - симулятор ADСS сбрасывает, хотя во фри-раннинг не должен вроде бы...
(или что-то в таком духе - не вспомню сейчас)

а читать H - да, нужно обязательно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на ATmega8
СообщениеДобавлено: 22 окт 2010, 14:16 
Не в сети

Зарегистрирован: 03 ноя 2009, 22:47
Сообщения: 4
Откуда: Москва
Сейчас все сделал как Вы посоветовали, все работает - ОГРОМНОЕ СПАСИБО!
Я просто нигде не наткнулся на то, что надо было считывать еще и старший байт - считывал только младший чтобы проверить работоспособность АЦП, а старший хотел потом подключить - дело в том, что в конечном итоге мне не нужно будет выводить данные в порт - это я для себя, для проверки сделал. :Yahoo!:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на ATmega8
СообщениеДобавлено: 22 окт 2010, 19:24 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
и я проглядел...

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АЦП на ATmega8
СообщениеДобавлено: 22 окт 2010, 20:47 
Не в сети

Зарегистрирован: 03 ноя 2009, 22:47
Сообщения: 4
Откуда: Москва
Да ладно, бывает..=) Главное, что общими усилиями пришли к рабочей программе=) Еще раз всем огромное спасибо!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO