roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 20:11

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Помогите,пожалуйста,разобраться в коде Ассемблера
СообщениеДобавлено: 07 дек 2010, 19:04 
Не в сети

Зарегистрирован: 07 дек 2010, 18:50
Сообщения: 4
вот,это код на ассемблере,написанный для avr
хотелось бы понять его,ибо тяжко очень с пониманием того,что здесь происходит, не имея комментариев к каждой строчке)))

Код:
.include "m8def.inc" ;
.org 0 //
   rjmp   RESET   
;   reti ;   reti
;   reti
;   reti

.equ   DD_MOSI = DDB3
.equ   DD_MISO = DDB4
.equ    DD_SCK  = DDB5
.equ    DDR_SPI = DDRB

RESET:
            ;
   ldi   r16,high(RAMEND) ;
   out   SPH,r16            ;
   ldi   r16,low(RAMEND)    
   out   SPL,r16

SPI_MasterInit: //
         
ldi r17,(1<<DD_MOSI)|(1<<DD_SCK)
out DDR_SPI,r17
           
ldi r17,(1<<SPE)|(1<<MSTR)|(1<<SPR0)
out SPCR,r17
ret //
SPI_MasterTransmit:
         
out SPDR,r16
Wait_Transmit:
sbis SPSR,SPIF
rjmp Wait_Transmit
         
ret


SPI_SlaveInit:
           
ldi r17,(1<<DD_MISO)
out DDR_SPI,r17
             
ldi r17,(1<<SPE)
out SPCR,r17
ret
SPI_SlaveReceive:
         
sbis SPSR,SPIF
rjmp SPI_SlaveReceive
           
in r16,SPDR
ret

timer:       
    ldi r18,9

loop:          ; prescaler Fosc/1
   ldi r16, (0<<ICNC1 | 0<<ICES1 | 0<<WGM13 | 0<<WGM12 | 0<<CS12 | 0<<CS11 | 1<<CS10)
            ;  ==   ldi r16, 0x07  ; == 00000100b
   out   TCCR1B, r16   

   ldi r16, (0<<COM1A1 | 0<<COM1A0 | 0<<COM1B1 | 0<<COM1B0 | 0<<FOC1A | 0<<FOC1B | 0<<WGM11 | 0<<WGM10)
            ; ==   ldi r16, 0x00
   out   TCCR1A, r16   

   in  r16, TIMSK   
   ori r16,1<<TOIE1 ; == 0000 0100 == 7 
            ; andi r16,~(1<<TOIE1) ; == 1111 1011 == 0xFB
   out   TIMSK, r16


            dec  r18     
   breq SPI_MasterInit
   rjmp loop


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите,пожалуйста,разобраться в коде Ассемблера
СообщениеДобавлено: 07 дек 2010, 20:25 
Не в сети
Аватара пользователя

Зарегистрирован: 20 сен 2007, 11:44
Сообщения: 491
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич
какя-то фигня несвязная


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите,пожалуйста,разобраться в коде Ассемблера
СообщениеДобавлено: 07 дек 2010, 21:03 
Не в сети

Зарегистрирован: 07 дек 2010, 18:50
Сообщения: 4
а что тут несвязного? сначала происходит инициализация стека,потом показывается,что передача происходит через SPI шину....а дальше уже сама программа


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите,пожалуйста,разобраться в коде Ассемблера
СообщениеДобавлено: 07 дек 2010, 21:04 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Этот код работать не будет, разбираться в нем незачем. Кто-то что-то мутил с SPI. Сперва идет настройка стека, потом идут несколько подпрограмм, потом главный цикл. Вот только первая подпрограмма выполнится, а ее никто не вызывал, она попытается вернуться в точку вызова, которой нет - тут то программа и заглючит. Плюньте на это дело, не надо копаться в чужом глючном коде. Делайте свои глюки, зато вам будет все ясно. Изучайте даташиты, приходите на курсы - и будет вам счастье.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите,пожалуйста,разобраться в коде Ассемблера
СообщениеДобавлено: 07 дек 2010, 21:11 
Не в сети

Зарегистрирован: 07 дек 2010, 18:50
Сообщения: 4
эх...вот этого я и ожидала,что там полный ппц будет...(
в программировании я полный ноль, а курсовик у нас такой вот веселый получается...
у меня есть цифровой термометр,где связь с ПК через RS-232 осуществляется,но,как я вижу в этом коде,тут вообще SPI шину инициализировать пытаются...ээх....печаль...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите,пожалуйста,разобраться в коде Ассемблера
СообщениеДобавлено: 07 дек 2010, 21:17 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
эм, если это курсовик, вам разве не рассказывали как его делать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите,пожалуйста,разобраться в коде Ассемблера
СообщениеДобавлено: 07 дек 2010, 21:18 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Не время печалиться - сессия на носу :) . За вас никто из нас курсовик не напишет, но помочь мы можем. Нужно только чтобы вы дело делали, а тут задавали конкретные вопросы. Первое, что от вас нужно - это кратко сформулировать, что от вас требуется. Программа пишется под конкретное железо - значит надо привести схему вашей железки. Начнете делать - вопросов будет много. Только не спрашивайте КАК делать. На такой вопрос нельзя ответить кратко. Спрашивайте лучше: могу так сделать, могу эдак. Как лучше?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите,пожалуйста,разобраться в коде Ассемблера
СообщениеДобавлено: 07 дек 2010, 21:34 
Не в сети

Зарегистрирован: 07 дек 2010, 18:50
Сообщения: 4
есть МК Atmega8 и последовательный порт передачи данных RS-232.скорость передачи данных 115200 б/сек. тактовая частота процессора ( если это необходимо)=3.6864 МГц.хочется посмотреть в коде,как происходит инициализация этого RS-232 и процесс передачи данных. просто ума не приложу,как такое можно самой додумать!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите,пожалуйста,разобраться в коде Ассемблера
СообщениеДобавлено: 07 дек 2010, 21:39 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Читаем отсюда и далее. Все просто, все по русски, есть примеры кода. Знаете ли английский? Есть еще куча инфы на буржуйском.
http://www.gaw.ru/html.cgi/txt/doc/micr ... 128/17.htm


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO