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

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

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

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

Не по теме:

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



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

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

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

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

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

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

14
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,775
07.06.2014, 08:01 2
Можно взять за основу ATmega16.
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27969 / 15696 / 961
Регистрация: 15.09.2009
Сообщений: 67,822
Записей в блоге: 78
07.06.2014, 08:04 3
да там и тини достаточно...Lisok, Видите ли, писать за Вас тут никто не будет,
приветствуется "я вот тут что то написала, но оно не работает зачем то, *+ выложенный нерабочий код*"
0
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
07.06.2014, 09:33 4
Коллекция исходников по алгоритмам и ссылок по работе с интерфейсами в МК
0
korsaj
152 / 119 / 11
Регистрация: 16.08.2013
Сообщений: 576
07.06.2014, 23:39 5
А число вводить как? Или с помощью чего?
0
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
08.06.2014, 00:29 6
...подозреваю, что телепатически.
0
Lisok
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
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,775
08.06.2014, 19:55 8
Цитата Сообщение от Lisok Посмотреть сообщение
инкрементировать его до переполнения
Что инкрементируем и где проверяем переполнение?
0
Lisok
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 6
08.06.2014, 20:02  [ТС] 9
веденное число инкрементировать , а где именно проверяется переполнение, пояснений не было.
0
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,775
08.06.2014, 20:02 10
Цитата Сообщение от Lisok Посмотреть сообщение
Если это число больше 20
Где это число и где проверка?
0
Lisok
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 6
08.06.2014, 20:06  [ТС] 11
число итераций цикла.
после цикла осуществляется, вроде так.
0
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,775
08.06.2014, 20:53 12
Вот и определитесь, где у вас это число. И проверяйте его.
0
Lisok
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 6
08.06.2014, 20:58  [ТС] 13
бесподобный ответ)
Благодарю))
0
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,775
08.06.2014, 20:59 14
Спасибо. Польщён.
0
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
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
09.06.2014, 11:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2014, 11:22

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 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru