Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/77: Рейтинг темы: голосов - 77, средняя оценка - 4.86
Otixius

AVR. Ассемблер код. Как реализовать условия...?

15.04.2010, 22:23. Показов 14327. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
короче есть массивы:

button1: .db 23,45,45,66,33,44,55,65,45,5,66,5,4,33,9 8
button2: .db 23,34,45,56,67,78,89,12,12,12,23,34,45,5 6
button3: .db 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,3,2,3,2,
button4... -//-
button5... -//- примерно то же самое, числа.
button6... -//-

вот так примерно обрабатывается:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
temp=0
couter=0 и т.п.
stort:
cpi counter,15 ;цикл выполняется 15 раз. за цикл все 15 цифр массива
breq exit
ldi ZH,high(button3*2) ;загружаем адрес первого числа массива button3
ldi ZL,low(button3*2)   ;
ldi temp1,0
add ZL,temp   ;загрузить адрес первого числа, второго, третьего... инкрименируем адрес в цикле
adc ZH,temp1 ;
lpm                ;загрузить значение по данному адресу в регистр R0
yms temp         ;инкриминировать адрес
mov R16,R0    ;переместить число из регистра памяти в регистр общего назначения
 
*  тут обрабатываю регистр R16 ; в общей сумме 15 раз обрабатываю *
 
yms counter ;просто счетчик сколько циклов отработано
rjmp stort
exit:
вобщем тут жестко задан массив из которого по порядку нужно брать цифры. Хочется отвязаться от конкретного массива, а как то указать переменной Key_buf, которая будет содержать номер нажатой кнопки, =1,2,3 ... 6 и в зависимости от номера кнопки, содержащегося в переменной, брать значения для обработки в цикле из одного или другого массива- массив не будет жестко задан, а будет определяться переменной.

массивы даны, вот они, их 6 штук:
Code
1
2
3
4
5
6
button1: .db 23,45,45,66,33,44,55,65,45,5,66,5,4,33,98
button2: .db 23,34,45,56,67,78,89,12,12,12,23,34,45,56
button3: .db 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,3,2,3,2,
button4... -//-
button5... -//- примерно то же самое, числа.
button6... -//-
вот как связать значения в переменной Key_buf (например там число 3) с тем, что нужно считать 15 цифр из массива button3, а если в переменной Key_buf было бы число 5, то нужно было бы считать все в том же цикле, все то же количество цифр (15), НО из массива button5.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.04.2010, 22:23
Ответы с готовыми решениями:

Ассемблер AVR-AS из AVR-GCC
Помогите начать программировать на этом ассемблере. Интересует: - подробное описание синтаксиса(желательно на русском): макросы,...

Светофор на AVR АССЕМБЛЕР!
Здравствуйте. Помогите пожалуйста организовать работу одной стороны светофора (красный-красный и желтый-зеленый и т д).При условии...

Ассемблер для микроконтроллеров Atmel AVR
Всем приветы, люди кто может помочь с написанием программки на ассемблере для микроконтроллеров Atmel AVR. Нужно чтобы лаб. стенд погудел и...

20
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
16.04.2010, 20:41
Студворк — интернет-сервис помощи студентам
Ну оно ругается что неизвестный код операции. По ходу оно пытается выполнять константы как инструкции. Надо видеть весь код, так я ничего сказать не могу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.04.2010, 20:41

Ассемблер AVR studio двойные слова числа
Здравствуйте, вопрос от новичка, пытаюсь изучать МК на конкретной задаче. Условия такие, МК мега128, имеется переключатель на 20...

AVR ассемблер. объявление массива .db Atmel Studio 7, ошибка компиляции?
Столкнулся со странной проблемой. Написал код для дисплея. код рабочий такой: .CSEG ; ;таблица прерываний ;расписана...

как перевести код c++ на ассемблер
выручайте как перевести код на c++ перевести на ассемблер, вот код если что срочно надо #include "stdafx.h" #include...

Условия в bat, как реализовать
Здравствуйте. Есть вопрос. Так как я никогда не работал в сфере программирования под Windows, решил обратиться к Вам. Задача: Имеется...

AVR ассемблер. объявление массива .db в макросе .macro не работает!? Atmel Studio 7
.CSEG ;разумеется .macro lcd_pr .if @0==6 ; .org 0x11ff - и так пытался dat: .db @1,@2,@3,@4,@5,0x001F,0xF800 ;data: .db...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru