Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: АЦП+UART+семисегментный индикатор(ATMega16, asm)
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
dvs85
Пытаюсь разобраться с АЦП на AVR. Взял за исходник вот эту программу http://easyelectronics.ru/tretya-programma...cp-na-uart.html (AVR. Учебный Курс. Выдача данных с АЦП на UART. Мультиплексирование каналов АЦП). Вроде бы с алгоритмом разобрался, решил добавить еще вывод на семисегментный индикатор. И у меня встал вопрос о том, как преобразовать значение ацп для отправки его на индикатор. Нашел вот такой проект http://www.arhimed.info/circuits/atmega8_voltmetr.html(ВОЛЬТМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATmega8). Там есть такая подпрограмма
Код
;;=========================================================================
;; преобразование 10-разрядного двоичного числа
;; в 3-разрядное двоично-десятичное неупакованное число
;; resH:resL - двоичное число
;; r18:r17:r16 - десятичное
bin_to_dec:

                ser r18
bin_to_dec1:    inc r18
                subi resL, 100
                sbci resH, 0
                brcc bin_to_dec1; вычитаем еще раз (нет заема)
                subi resL, -100
                sbci resH, 0

                ser r17
bin_to_dec2:    inc r17
                subi resL, 10
                brcc bin_to_dec2
                subi resL, -10

                ser r16
bin_to_dec3:    inc r16
                subi resL, 1
                brcc bin_to_dec3
                ret

Я так понял она и выполняет такое преобразование.
Написал програмку, но у нее даже пропала выдача значения в uart.
Буду благодарен, если кто нибудь подскажет ошибку или хотя бы подскажет как правильно реализовать мой проект
dvs85
Ошибку в программе нашел. Спасибо за внимание.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.