Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Attiny USART Proteus7.10 VirtualTerminal приходят одни нули http://www.cyberforum.ru/avr/thread2086965.html
Листинг проги, взят банально из даташита на attiny 2313. Подрубаю ее в протуесу к виртуальному терминали, запускаю, а приходят только нули. Нули видно только в хекс режиме, в аскей одно пустое окно....
Atmega AVR микроконтроллер 3-х фазный генератор задающий на xMega
Добрый день/вечер/ночь) Хотелось бы спросить у глубоко знающих людей, у тех, кто давно пишет программы и хорошо знает микроконтроллеры: Как ПРИМЕРНО организовать трехфазный генератор? На что...
Вопрос к пишущим на asm в AVR Studio 4-5-6 Atmega AVR микроконтроллер
Собственно хотелось бы услышать какая версия наименее глючная и удобная в этом ключе. Какие глюки при прогонке программы присутствуют в 6 версии?
Atmega AVR микроконтроллер Прерывание по изменению уровня на INT0 в ATmega16 Предисловие. Проект частотомера в AVR Studyo 4. При использовании режима Power-down Mode разбудить МК можно только внешний сбросом, сбросом сторожевым таймером, прерыванием TWI или изменением... http://www.cyberforum.ru/avr/thread2086962.html
Atmega AVR микроконтроллер Софтовый i2c в студии (си) http://www.cyberforum.ru/avr/thread2086961.html
Кодвижн реально глючная хрень, поэтому перешол на студию. Тут начались проблемы с макросами типа PortB.3=0; и подобными старыми удобностями со встроеным генератором кода и библами. В студии ненашол...
Atmega AVR микроконтроллер расстояние между числами
Есть например uint8. Значение в нем 125. Надо его сравнивать с эталоном, например 30. Получается 125 - 30 = 95. Разница между числами. Но число может быть 25. Тогда получится: 25-30 = -5 ...
AVR(codevisionavr)+PCF8583 часики не ходят Atmega AVR микроконтроллер
Всем привет взял микруху с некогда рабочего девайса траванул платку впаял микруру простейшая схема <Изображение удалено> приконектил к контроллеру вывожу на экран if(PINC.6==0){...
Atmega AVR микроконтроллер После обновления прошивки не работает USBasp программатор После обновления прошивки USBasp программатор правильно определяется в системе, но не отвечает на запросы программ progysp1.72 и avrdudeprog3, и соответственно - не видит контроллеров. ... http://www.cyberforum.ru/avr/thread2086958.html
Atmega AVR микроконтроллер Atmega 2560 boot http://www.cyberforum.ru/avr/thread2086957.html
Товарищи, загуглил "тему" что-то я не так наверное гуглю, но мне нужен бутлодырь, который будет совместим по протоколу с AVR 901 т.е. работать через обычный AVRprog. Никаких шифровок не надо. Мож по...
Atmega AVR микроконтроллер Простой датчик перехода через 0 для AVR (с опторазвязкой) Всем привет ! Заморачиваюсь потихоньку с AVRками, 1-Wire и прочим, автоматизирую домашние мелочи (вернее только начал). С программированием у меня всё нормально, а вот электроника хромает, причём... http://www.cyberforum.ru/avr/thread2086956.html
putmom
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 35
10.08.2012, 13:22 0

Проблемы с АЦП.

10.08.2012, 13:22. Просмотров 4084. Ответов 8
Метки (Все метки)

Ответ

;******** Обработка прер.по АЦП *************************************

ADC_CC :sbi PORTC, 5

cpi selacp, 1 ;если селектор АЦП =1 то идём на контроль тока
breq tok

cpi selacp, 2 ;если селектор АЦП =2 то идём на опрос кнопок
breq key

cpi selacp, 3 ;если селектор АЦП =3 то идём на опрос кнопок
breq akb

akb: ldi selacp, 1

in tempdiv,ADCL ; просто формальность (первым всегда читается ADCL)
in temp, ADCH ; читаем напряжение на АКБ

lds suml, suml2 ;накопленую сумму напряжения на АКБ в быстрые регисты
lds sumh, sumh2
lds sumak, sumak2

add suml, tempdiv ;двухбайтное сложение накопленного значения с
adc sumh, temp ;только что полученым из АЦП

yms sumak ;N - раз сложили ?
mov temp, sumak ;если нет то идём далее
cpi temp, 32
breq wozv1 ;иначе переход

sts suml2, suml ;сохраняем значения
sts sumh2, sumh
sts sumak2, sumak

ldi temp, 0b11100001;запуск преобразования АЦП-1 для тока на диодах
out ADMUX, temp
ldi temp, 0b11001111
out ADCSR, temp

cbi PORTC, 5

reti
;-------------------------------------------------------------------------------
tok: rjmp tok1 ;не хватает длины перехода, перевалочная
key: rjmp key1 ;не хватает длины перехода, перевалочная
;-------------------------------------------------------------------------------
wozv1:

lsr sumh
ror suml
lsr sumh
ror suml
lsr sumh
ror suml
lsr sumh
ror suml

mov temp, suml ;вычитаем 160 из переменной АКБ
subi temp, 80 ;подгоняем 13.3v к нулю по нашей шкале.
mov suml, temp
mov temp, sumh
sbci temp, 3
mov sumh, temp

sts akbh, sumh ;temp
sts akbl, suml

rcall akbzn
;mov akk, sumh

clr sumak
clr suml
clr sumh

sts suml2, suml
sts sumh2, sumh
sts sumak2, sumak

ldi temp, 0b11100001 ;запуск преобразования АЦП-1 для тока на диодах
out ADMUX, temp
ldi temp, 0b11001111
out ADCSR, temp

cbi PORTC, 5

reti

key1: ldi selacp, 3
in temp, ADCL ; просто формальность (первым всегда читается ADCL)
in tacp, ADCH ; wreg contains result
mov t, tacp
lsr t
lsr t
lsr t
lsr t
lsr t

ldi temp, 0b11000000 ;запуск преобразования АЦП-0 для аккумулятора(температура ацп-4)
out ADMUX, temp
ldi temp, 0b11001111
out ADCSR, temp

cbi PORTC, 5

reti

tok1: lds temp, tk
yms temp
cpi temp, 250
breq tk2
sts tk, temp
ldi selacp, 1
ldi temp, 0b11100001 ;запуск преобразования АЦП-1 для тока на диодах
out ADMUX, temp
ldi temp, 0b11001111
out ADCSR, temp
rjmp tk3

tk2: clr temp
sts tk, temp
ldi selacp, 2
ldi temp, 0b11100111 ;запуск преобразования АЦП-7 для кнопок
out ADMUX, temp
ldi temp, 0b11001111
out ADCSR, temp

tk3: in temp, ADCL ; просто формальность (первым всегда читается ADCL)
in temp, ADCH ; wreg contains result

lds suml, suml1
lds sumh, sumh1
lds sumak, sumak1

add suml, temp
clr temp
adc sumh, temp

yms sumak
mov temp, sumak
cpi temp, 8
breq wozv

sts suml1, suml
sts sumh1, sumh
sts sumak1, sumak

cbi PORTC, 5

reti

wozv:
;ror sumh
;ror suml
;ror sumh
;ror suml
ror sumh
ror suml
ror sumh
ror suml
ror sumh
ror suml

mov a, suml
clr sumak
clr suml
clr sumh

rcall ktok

sts suml1, suml
sts sumh1, sumh
sts sumak1, sumak

ldi temp, 0b11100111 ;чтение, АЦП-7
out ADMUX, temp
ldi temp, 0b11001111
out ADCSR, temp

cbi PORTC, 5

reti
;----------------------------------
mov temp, a
cpi temp, 80
breq off

mov temp, shim
cpi temp, 30
brcc tk4

off: cbi PORTB, 1 ;выключаем диоды
cbr flag, 1 ;снимаем флаг включенных диодов
ldi temp, 196
mov kshim, temp

tk4:

cbi PORTC, 5

reti

Вернуться к обсуждению:
Проблемы с АЦП.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2012, 13:22
Готовые ответы и решения:

возможные проблемы с АЦП
Здравствуйте! Через пару дней хочу начать разбираться с АЦП (МК Atmega16). С какими возможными...

Atmega328, проблемы с АЦП
Здравствуйте, народ. Какие могут быть идеи по следующим симптомам: - всегда 1023 - сам МК...

АЦП+ UART на ATmega16: проблемы
Добрый день. Имеются следующие проблемы. 1. При попытке наладить передачу значения АЦП по UART...

АЦП AVR, проблемы с компиляцией
Всем доброго времени суток! Помогите пожалуйста разобраться с кодом (WinAvr для Atmega8). Мне нужно...

Расширение АЦП микроконтроллера и подключение к АЦП датчиков
Здравствуйте. У меня встала задача сделать устройство для элеватора, для контроля температуры в 864...

8
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.