Файлы  •  Ссылки  •  Прошивки  •  Правила  •  Архив  •   FAQ  •  Участники  •  Поиск
Регистрация  •  Вход

Простая задача по ассемблеру

Список форумов» Программное обеспечение» Микроконтроллеры
АвторСообщение
Gig
Участник
Сообщения: 62




20-05-2008 18:30

Прошу помочь людей, знающих ассемблер. Очень нужно, горит экзамен. улыбка
Собственно задача:
Контроллер At90s8535
На port A, pin7 случайным образом подаются импульсы интервалом 1-10 сек.
Начало каждого импульса фиксировать засветкой светодиода (длительность засветки 0.5сек.), подключенного к pin2 PortB.

Как я понимаю, задача простая до безобразия(сам работал только в СИ, там реализуется строчек в 5), но нужно именно на asm.
Vasil_
Забанен
Забанен
Сообщения: 203




20-05-2008 18:51

А ты напиши на Си, откомпили, а потом дизассемблируй ,улыбка
pavel-pervomaysk
Your editor
Сообщения: 8037




20-05-2008 18:56

Gig, сделаем улыбка Только уточни как идут импульсы на вход по фронту или по спаду ? И светодион как включен ?
Gig
Участник
Сообщения: 62




20-05-2008 19:01

Импульсы идут по фронту.
В смысле как включён светодиод?
А как дизассемблить, просто я никогда с этим не сталкивался.
pavel-pervomaysk
Your editor
Сообщения: 8037




20-05-2008 19:03

Вот под такое щас напишу если надо .

12345.jpg



Gig
Участник
Сообщения: 62




20-05-2008 19:05

Оно самое.

Добавлено 20-05-2008 19:15

Я тут накрапал кое-что:
.device at90s8535
.include "8535def.inc"
ser r16 ;все биты регистра R16 устанавливаются в единицу
out ddra,r16 ;настройка порта A на вывод

loop:
in r17,pina ;загружаем данные из порта A в регистр R17
sbis pina,7 ;
rjmp n1 ;
bst r17,7 ;
bld r18,2 ;
out portb,r18;
rcall delay ;
out portb,r19;
rjmp loop;
delay: ;підпрограма затримки на 0.5 секунди
clr r20 ;очищення регістра R19
clr r21 ;очищення регістра R20
clr r22 ;очищення регістра R21
n1:
inc r20 ;інкремент (+1) регістра R19
cpi r20,255 ;порівняння регістра R19 з 255
brne n1 ;якщо R19 255, то програма переходить на мітку n1
inc r21 ;інкремент (+1) регістра R20
cpi r21,255 ;порівняння регістра R20 з 255
brne n1 ;якщо R20 255, то програма переходить на мітку n1
inc r22 ;інкремент (+1) регістра R21
cpi r22,16 ;порівняння регістра R21 з 48
brne n1 ;якщо R21 48, то програма переходить на мітку n1
ret ;вихід із підпрограми затримки

Может быть так?
pavel-pervomaysk
Your editor
Сообщения: 8037




20-05-2008 19:29

Вот написал , есть на чем проверить , ато может времени не хватить , в смысле задержка может быть скорее всего меньше чем 500 мс

  8535.rar  3,77 КБ  Скачано: 561 раз(а)

Gig
Участник
Сообщения: 62




20-05-2008 19:32

А мой вариант правильный?, тоже интересует реализация задержки(содрано с какой-то другой работы).
pavel-pervomaysk
Your editor
Сообщения: 8037




20-05-2008 19:41

Я всегда стараюсь делать как мне проще и понятнее . Пробуй шить контроллер
GarikBaza
Новичок
Сообщения: 664




20-05-2008 20:14

pavel-pervomaysk, силен в асме, верь ему. На С - это ко мне улыбка
Gig
Участник
Сообщения: 62




20-05-2008 21:39

GarikBaza, если чё, буду обращаться.

Добавлено 20-05-2008 21:39

Всем спасибо, тема решена.
Список форумов» Программное обеспечение» Микроконтроллеры» Простая задача по ассемблеру
Перейти:  
Текущий раздел» Программное обеспечение» Микроконтроллеры (Микроконтроллеры - AVR-ы, PIC-и и другие)








Информация по ремонту для специалистов - справочники, инструкции, энциклопедия, советы и секреты ремонта,  настройка, сервисные режимы
Powered by phpBB 2.0.18 © 2001, 2002 phpBB Group!