roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Помогите найти ошибку в коде (asm)
СообщениеДобавлено: 04 мар 2010, 17:04 
Не в сети

Зарегистрирован: 04 мар 2010, 16:00
Сообщения: 11
прог. языки: asm, C, php, paskal
Здрвствуйте. Хочу сделать робо манипулятор и вроде все потехоньку получалось, но этот вопросы уже третий день не могу решить. Подскажите пожалуйста что не так, буду оч рад обьективной критики. Попрошу сильно не пинать , всётоки первый пост на форуме .

Схема предстовляет из себя Atmega8 + L293D(пара калекторных электроматоров) + max232 . Работает таким образом, я отправляю через терминал символ, мк отправляет его обратно и выполняет подпрограмму этого символа( скважность шим , управления драйвером моторочиков). Все в общем работало как надо, но когда я в подпрограмме (si8:) указал отправить на пк символ (t) в терминал приходит кракозябра (єієіє»єkt·єµ) а должны приходить (kt). Не как не могу понять почему это происходит, вед отправка осуществляется тока после проверки на пустой UDR . Темболие этот-же код отправляет символ обратно и все работает без сбоев.


Компилятор - AvrStudio


Код:
.include "m8def.inc"

rjmp init
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
rjmp t1
reti
reti
reti
reti
reti
reti
reti



;================================

init:   

;инициализация uart
         LDI r16, low(47)
         OUT UBRRL,r16
         LDI r16, high(47)
         OUT UBRRH,r16

         ldi r16,0b11111000   
         out UCSRB,r16       
         
         ldi r16,0b10000110   
         out UCSRC,r16   

         
         ldi r16,0b11111111
         out   DDRB,r16

         ldi r16,0b00000000
         out   PORTB,r16


         ldi r16,0b11111110
         out   DDRC,r16

         ldi r16,0b00000001
         out   PORTc,r16


         ldi r16,0b00100000
         out MCUCR,r16

;         SBI      DDRB,1
         SBI      DDRB,2

         LDI   R16,(0<<COM1A1)|(1<<COM1B1)|(1<<WGM10)   ; Инициализация PWM
         OUT   TCCR1A, R16

         LDI   R16,(1<<WGM12)|(1<<CS10)       ; Режим Fast PWM   
         OUT   TCCR1B, R16

         LDI   R16,100      ; Скважность 0%
         OUT   OCR1BL,R16


         sei

      

; и понеслась


pause:         sleep
         rjmp pause

;=========================================================================================
;t1- срабатывает по приходу символа
t1:         
         in r16,UDR


;отправляю символ обратно
uart_snt:   
         SBIS UCSRA,UDRE      
         RJMP uart_snt       
         OUT UDR, R16

;поиск подпрограммы, их в оригенале больше просто чтобы не отнимать ваше время сократил код.


         cpi r16,'k'
         breq si8
         
         reti



;============================================================================================

si8:      
         ldi r16,'t'
         SBIS UCSRA,UDRE      
         RJMP si8
         OUT UDR, R16
         reti






Если когонебудь из начинающих интерисует данная тема обращайтесь буду рад помоч ICQ 2003751 .
В данный момент реализованна программа на Delphi7(на уровне терминала) для связи с мк и сам мк с несложным обвесом.
Планируется усовршеснтвовать прогу на делфи чтобы она использовала своего рода списки, где каждая строчка содержит информацию какому мотору надо крутится и сколько , эти строки ( команды) будут отправлятся на мк он в совю очередь будет подсчитывать сколько оборотов сдел указанный движок и сообщать о результатах обратно.
А списки будут создаватся путем ручного перемещения манипулятора и сохранения кардинат всех осей.


Вложения:
Комментарий к файлу: Архив с проектом проги
prog2.rar [5.31 КиБ]
Скачиваний: 1
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ошибку в коде (asm)
СообщениеДобавлено: 04 мар 2010, 17:33 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Вы попробуйте в PROTEUS посимулировать там можно реально обмен с ПК отследить и даже подключиться к реальному COM порту ПК - http://proteus123.narod.ru

_________________
Читайте !


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

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
на счет почему символы - слету хз... а вот почему reti ? это же выход из прерывания...

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ошибку в коде (asm)
СообщениеДобавлено: 04 мар 2010, 18:14 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
это не выход из прерывания, это возврат из подпрограммы с разрещением прерываний глобально - установка бит_7 в SREG.

_________________
Читайте !


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

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
читаем список команд из ДШ...

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


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

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Duhas писал(а):
а вот почему reti ? это же выход из прерывания...

потому что джампом переходит из прерывания

Добавлено спустя 5 минут 47 секунд:
На первый взгляд вроде должно работать, если не считать что расшифровывать вот такое нету никакого желания
Код:
ldi r16,0b11111000   
out UCSRB,r16       

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ошибку в коде (asm)
СообщениеДобавлено: 04 мар 2010, 18:28 
Не в сети

Зарегистрирован: 04 мар 2010, 16:00
Сообщения: 11
прог. языки: asm, C, php, paskal
нету не только желания но и надобности( возмлжно в силу малого опыта ошибаюсь но помоему....) , так как символы и отправляют и принмаются успешно проблемы возникают именно когда пытаюсь отправить два символа подряд .


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

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Ну, не надо, так не надо

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ошибку в коде (asm)
СообщениеДобавлено: 04 мар 2010, 18:48 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Qerio писал(а):
именно когда пытаюсь отправить два символа подряд .

Наверно проц матерится ! :ROFL:

Попробуйте код из даташит.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ошибку в коде (asm)
СообщениеДобавлено: 04 мар 2010, 19:29 
Не в сети

Зарегистрирован: 04 мар 2010, 16:00
Сообщения: 11
прог. языки: asm, C, php, paskal
попробовал заменить символ 't' на '0' теперь выдаед
µ˜·˜µ˜µ˜k0і˜k0і˜»˜µ˜k0-滘k0»˜-滘і˜µ˜µ˜і˜k0k0»˜µ˜µ˜µ˜µ˜µ˜k0-浘k0k0і˜µ˜-淘»˜·˜»˜·˜»˜·˜»˜·
˜»˜·˜·˜»˜·˜»˜·˜»˜·˜»˜·˜»˜·˜»˜·˜»˜·˜·˜·˜µ˜·˜k0і˜-浘-淘k0k0k0k0k0і˜µ˜k0-浘

походу это от того что он склеивает байти


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

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


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

Зарегистрирован: 05 окт 2008, 14:41
Сообщения: 997
Откуда: СПб
прог. языки: C,Python
2 Victorovych неа
мб стоит сбрасывать\устанавливать TXB8 ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ошибку в коде (asm)
СообщениеДобавлено: 04 мар 2010, 20:02 
Не в сети

Зарегистрирован: 04 мар 2010, 16:00
Сообщения: 11
прог. языки: asm, C, php, paskal
Будте добры болие подробно ... как отправить по TXT ?


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

Зарегистрирован: 05 окт 2008, 14:41
Сообщения: 997
Откуда: СПб
прог. языки: C,Python
вот -
Вложение:
345.JPG
345.JPG [ 64.95 КиБ | Просмотров: 2459 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите найти ошибку в коде (asm)
СообщениеДобавлено: 04 мар 2010, 20:12 
Не в сети

Зарегистрирован: 04 мар 2010, 16:00
Сообщения: 11
прог. языки: asm, C, php, paskal
попробовал

Код:
si8:      
         ldi r16,'1'
         SBIS UCSRA,UDRE      
         RJMP si8
         OUT   UDR, R16
         bclr TXB8
aaa         ldi r16,'2'
         SBIS UCSRA,UDRE      
         RJMP aaa
         OUT   UDR, R16
         bclr TXB8
bbb:         ldi r16,'3'
         SBIS UCSRA,UDRE      
         RJMP bbb
         OUT   UDR, R16
         bclr TXB8
                  reti
непомгло тагже лагает .


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

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


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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 20


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

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