Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 6
1

Инкрементация числа до переполнения на ASM в AVR Studio

06.06.2014, 19:13. Показов 1751. Ответов 14
Метки нет (Все метки)

1 задача.
Ввести число. В цикле инкрементировать его до переполнения. Вывести в порт вывода полученное число итераций цикла. Если это число больше 20, то вывести это число в другой порт вывода

Не по теме:

2 задача.
В цикле из 100 итераций организовать "бегучий огонь" в одном из портов вывода. Определить число, определенное размером бита, в котором остановится цикл. Через порт ввода ввести число, сравнить с предыдущим. Если введенное число больше, вывести его в порт вывода. Если нет, вернуться в начало программы.



Помогите, сама чуточку в операциях разбираюсь, а как писать не знаю. Хоть каким-нибудь мыслям буду рада))))
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2014, 19:13
Ответы с готовыми решениями:

Вопрос к пишущим на asm в AVR Studio 4-5-6
Собственно хотелось бы услышать какая версия наименее глючная и удобная в этом ключе. Какие глюки...

Не происходит возврат из подпрограммы (AVR Studio 4, Asm)
Доброго времени суток. Пишу мигающий светодиод на Avr ассемблере под Atmega16, среда AVR Studio 4. ...

Вычитание двухбайтных чисел в AtMega8535 на ASM (AVR Studio 4)
Составить программу вычитания двухбайтных чисел. Уменьшаемое содержится в регистровой паре R3:R2,...

AVR Studio (ASM). Поменять местами тетрады в данных
№16 Задание делается в AVR Studio Помогите, буду очень признателен, задание сделать надо к...

14
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
07.06.2014, 08:01 2
Можно взять за основу ATmega16.
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28023 / 15750 / 971
Регистрация: 15.09.2009
Сообщений: 67,775
Записей в блоге: 78
07.06.2014, 08:04 3
да там и тини достаточно...Lisok, Видите ли, писать за Вас тут никто не будет,
приветствуется "я вот тут что то написала, но оно не работает зачем то, *+ выложенный нерабочий код*"
0
10214 / 6595 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
07.06.2014, 09:33 4
Коллекция исходников по алгоритмам и ссылок по работе с интерфейсами в МК
0
152 / 119 / 11
Регистрация: 16.08.2013
Сообщений: 576
07.06.2014, 23:39 5
А число вводить как? Или с помощью чего?
0
10214 / 6595 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
08.06.2014, 00:29 6
...подозреваю, что телепатически.
0
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 6
08.06.2014, 19:33  [ТС] 7
"я вот тут что то написала, но оно не работает"

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.device ATMega8
.nolist
.include "C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler\Appnotes\m8def.inc"
.list
 
.def a = R16
.def b = R17
.def c = R18
 
ldi a, 0b01000110
ldi b, 0b0
ldi c, 0b11111111
 
s1:
inc a
inc b
dec c
brne s1
 
out PortB,b
0
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
08.06.2014, 19:55 8
Цитата Сообщение от Lisok Посмотреть сообщение
инкрементировать его до переполнения
Что инкрементируем и где проверяем переполнение?
0
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 6
08.06.2014, 20:02  [ТС] 9
веденное число инкрементировать , а где именно проверяется переполнение, пояснений не было.
0
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
08.06.2014, 20:02 10
Цитата Сообщение от Lisok Посмотреть сообщение
Если это число больше 20
Где это число и где проверка?
0
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 6
08.06.2014, 20:06  [ТС] 11
число итераций цикла.
после цикла осуществляется, вроде так.
0
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
08.06.2014, 20:53 12
Вот и определитесь, где у вас это число. И проверяйте его.
0
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 6
08.06.2014, 20:58  [ТС] 13
бесподобный ответ)
Благодарю))
0
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
08.06.2014, 20:59 14
Спасибо. Польщён.
0
1279 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,884
09.06.2014, 11:22 15
Лучший ответ Сообщение было отмечено Lisok как решение

Решение

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
.device atmega8
.nolist
.include "m8def.inc"
.list
; =======================
; Обьявления
.def temp = r16
.def val = r17
.def cycle = r18
 
 
; =======================
; Начало программы
    rjmp Init;                      
 
Init:
;********************************************************************
; Установка указателя стека
    ldi temp,low(RAMEND)
    out SPL,temp
    ldi temp,high(RAMEND)
    out SPH,temp
 
;********************************************************************
; Инициализация порта В
    ldi temp, 0b11111111
    out DDRB, temp
    ldi temp, 0b00000000
    out PortB, temp
 
;********************************************************************
; Инициализация порта D
    ldi temp, 0b11111111
    out DDRD, temp
    ldi temp, 0b00000000
    out PortD, temp
 
;*******************************************************************
; Основной программный цикл
Start:
    ldi val, 5              ; задаем число
 
    ldi temp, 1
    ldi cycle 0
Loop:
    inc cycle               ; количество циклов
    add val, temp
    brcc Loop               ; перейти если нет переполнения
    
    cpi cycle, 20           ; проверяем количество интераций            
;
Допишите сами.
Почему использую команду add вместо inc:
INC - добавление единицы к содержимому регистра Rd и размещение результата в регистре назначения Rd.Флаг переноса регистра статуса данной командой не активируется.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2014, 11:22

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Обращение к регистрам через адреса (ASM, AVR Studio)
Здравствуйте, есть такой вопрос: к примеру у меня в SRAM хранятся реальные адреса регистров общего...

ATMega16 (AVR Studio, ASM) - Вывести результат на светодиоды по схеме
Ребят, помогите, пожалуйста, с решением задачи, не получается вывести результат на светодиоды по...

Прерывание по переполнению таймера-счетчика ATmega8535 (ASM, AVR Studio 4)
Система прерываний на примере прерывания по переполнению встроенного таймера-счётчика...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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