Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 24
1

Некий фрагмент кода не работает (AVR Studio 4)

04.11.2014, 08:31. Показов 1256. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Работа в AVR Studio 4:
Помогите, какими директивами нужно дополнить этот фрагмент, чтобы программа заработала?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
; ...
array:  .byte 5          ; 5 байт для массива array
; ...
    LDI R16, 5           ; предел повторений цикла
    LDI R17, 100         ; число, заносимое в массив array
    LDI R18, 1
 
    LDI R30, low(array)     ; младший байт адреса массива array
    LDI R31, high(array)    ; старший байт адреса массива array
 
loop:                 ; тело цикла
    ST  Z, R17        ; занесение числа 100 в массив array
    ADD R30, R18      ; адрес следующего байта массива array
    SUB R16, R18      ; счётчик числа проходов, шаг равен -1
    BRNE    loop          ; повторить, если счётчик не равен нулю
 
; ...
К тому же нужно изменить порядок подсчёта числа проходов цикла, задав изменение параметра цикла (счётчика) не с предела, а с нуля.
Предполагаю, что в конце нужно добавить строку.
met: RJMP met ; бесконечный цикл (для отладки)
Вот только код рабочий никак не выходит.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2014, 08:31
Ответы с готовыми решениями:

CAVR против AVR Studio, что не так в программе под AVR Studio
Проблема такая, есть исходник, если его компилировать в CAVR заливаю в МК все работает, если этот...

CharInSet - не работает фрагмент кода
Всем привет! Скажите пожалуйста почему эта конструкция не работает? Т.е. если в переменной...

Не работает отладка в AVR Studio 4
Добрый день ! Подскажите пожалуйста, почему не работает пошаговая отладка . При нажатии на...

AVR Studio ничего не работает
Пишу программу: int main(void) { ftoot f=1.0: } работает. int main(void) { ftoot f=1.0: f=f+1.0;...

5
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 24
04.11.2014, 08:39  [ТС] 2
Работа в AVR Studio 4:
Помогите, какими директивами нужно дополнить этот фрагмент, чтобы программа заработала?

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
; ...
array:  .byte 5          ; 5 байт для массива array
; ...
    LDI R16, 5           ; предел повторений цикла
    LDI R17, 100         ; число, заносимое в массив array
    LDI R18, 1
 
    LDI R30, low(array)     ; младший байт адреса массива array
    LDI R31, high(array)    ; старший байт адреса массива array
 
loop:                 ; тело цикла
    ST  Z, R17        ; занесение числа 100 в массив array
    ADD R30, R18      ; адрес следующего байта массива array
    SUB R16, R18      ; счётчик числа проходов, шаг равен -1
    BRNE    loop          ; повторить, если счётчик не равен нулю
 
; ...
К тому же нужно изменить порядок подсчёта числа проходов цикла, задав изменение параметра цикла (счётчика) не с предела, а с нуля.
Предполагаю, что в конце нужно добавить строку:
met: RJMP met ; бесконечный цикл (для отладки)
Вот только код рабочий никак не выходит.
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
04.11.2014, 12:34 3
МК какой?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
04.11.2014, 12:38 4
pretty,
ты пишешь не в тот раздел, обсуждай AVR Studio в разделе "микроконтроллеры"
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
04.11.2014, 15:42 5
Цитата Сообщение от pretty Посмотреть сообщение
для отладки
Для этого есть отладчик. Прогоняйте пошагово.
0
484 / 331 / 32
Регистрация: 15.08.2011
Сообщений: 1,071
04.11.2014, 16:54 6
Лучший ответ Сообщение было отмечено pretty как решение

Решение

Цитата Сообщение от pretty Посмотреть сообщение
Помогите, какими директивами нужно дополнить этот фрагмент, чтобы программа заработала?
Директивами объявления сегментов. Перед данными .dseg а перед программой .cseg

Добавлено через 2 минуты
Цитата Сообщение от pyzhman Посмотреть сообщение
Прогоняйте пошагово.
Он не может. Программа же не компилируется!

Добавлено через 5 минут
Цитата Сообщение от pretty Посмотреть сообщение
Предполагаю, что в конце нужно добавить строку:
met: RJMP met ; бесконечный цикл
Верно. Надо добавить.
1
04.11.2014, 16:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2014, 16:54
Помогаю со студенческими работами здесь

Как работает этот фрагмент кода?
n = 5 a = * n print(a)

Объясните, как работает фрагмент кода
Можете объяснить, что делает конкретно этот фрагмент кода, как работает? Желательно построчно...

Не работает фрагмент кода/выбивается программа
Во время вызова одной из "функций" программа вылетает Process returned -1073741676 (0xC0000094) В...

Объясните как работает фрагмент кода
Здравствуйте, объясните что на консоли появится после выполнения этого фрагмента программы. Что...

LPM не работает в AVR Studio 4.19 (Assembler 2)
Собственно вчера работала, сегодня нет. Код 100% рабочий зашил в МК, все ок. Причем не...

Объясните фрагмент кода, как работает,можно ли заменить???
sort(X.begin(),X.end()); sort(Y.begin(),Y.end()); Что это и как это работает,можно ли...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru