roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: прога на тсоп вроде правельна а на практике непашет...
СообщениеДобавлено: 27 сен 2007, 17:45 
Не в сети

Зарегистрирован: 30 мар 2007, 15:00
Сообщения: 80
Откуда: litva
Skype: bloodaxe777
прог. языки: pascal, delphi, C, ( basic, asm)-со словарём.
всем привет..написал прогу на инфракрасный сенсор, протеус говорит что всё в норме а в реале непашет.В чем может быт глюк?
вот кот проги:

Код:
.cseg          
.org 0
reset:
ldi r16,LOW(RAMEND)
out spl,r16

ldi r17,$ff   ;zagruzajem v 17 registr 255   
out ddrd,r17   ;nastraivajem PB na vyxod

cbi ddrb,1   ;podtiazka na Pb1
sbi portb,1   ;vkliuchiajem Pb1

   
   
   
check:      ;podprograma proverki knopki
sbis pinb,1   ;proveriajem knopku na PD1
rjmp LED_ON   ;jesli srabotalo idiom na LED_ON
rjmp start   ;jesli nesrabotalo idiom na start(snova vysylajem pachki impulsav)

start:      ;podprograma START
ldi r18,20   ;zagruzajem v r18 200 t.e zacyklivajem pachki impulsav
start1:      ;pervaja chiast
dec r18      ;umenshajem r18 na 1   
sbi portd,4   ;vkliuchiajem irLED na Pd4
ldi r28,1   ;zagruzajem v r28 dlinu zaderzki(podprogramy delay)
rcall delay   ;vyzyvajem podprogramu zaderzki(delay)
cbi portd,4   ;vykliuchiajem irLED na Pd4
ldi r28,1   ;zagruzajem v r28 dlitelnost zaderzki, tak kak snova budem vyzyvat podprogramu zaderzki
rcall delay   ;snova vyzyvajem podprogramu zaderzki(delay)
sbi portd,4   ;vkliuchiajem irLED na PB4
cpi r18,0   ;sravnivajem r18 s 0
brne start1   ;jesli ne nol perexodim na start1
ret      ;a jesli 0 vyxodim is podprogramy
rjmp check

delay:      ;podprograma zaderzki
delay1:      ;jejo pervaja chiast   
ldi r27,2   ;zagruzajem  v r27  7   
delay2:      ;jejo vtoraja chiast   
ldi r26,7   ;zagruzajem v r26 2   
delay3:      ;jejo trietaja chiast
dec r26      ;umenshajem r26 na 1   
cpi r26,0   ;sravnivajem s 0
brne delay3   ;jesli ne nol perexodim na delay3,a jesli nol idiom dalshe
dec r27      ;umenshajem r27 na 1
cpi r27,0   ;sravnivajem s 0
brne delay2   ;perexodim na delay2,a jesli 0 idiom dalshe
dec r28      ;umenshajem r28 na 1
cpi r28,0   ;sravnivajem s 0   
brne delay1   ;jesli ne nol idiom na delay1,a jesli 0 idiom dalshe
ret      ;vyxodim is podprogramy delay

wait:      ;prosta zaderzka dlia morganija ledom
wait1:      ;jejo pervaja chiast   
ldi r27,25   ;zagruzajem  v r27  100   
wait2:      ;jejo vtoraja chiast   
ldi r26,25   ;zagruzajem v r26 100   
wait3:      ;jejo trietaja chiast
dec r26      ;umenshajem r26 na 1   
cpi r26,0   ;sravnivajem s 0
brne wait3   ;jesli ne nol perexodim na delay3,a jesli nol idiom dalshe
dec r27      ;umenshajem r27 na 1
cpi r27,0   ;sravnivajem s 0
brne wait2   ;perexodim na delay2,a jesli 0 idiom dalshe
dec r28      ;umenshajem r28 na 1
cpi r28,0   ;sravnivajem s 0   
brne wait1   ;jesli ne nol idiom na delay1,a jesli 0 idiom dalshe
ret      ;vyxodim is podprogramy delay


LED_ON:
cbi portd,4   ;vykliuchiajem IRled
sbi portd,6   ;vkliuchiajem led na pd6
rcall wait;   ;vyzyvajem zaderzku chtoby lampachka morgnula
cbi portd,6   ;vykliuchiajem led na pd6
rjmp start   ;perexodim na start

;36khz = r28 * r27 * r26 * 0.000001
;36khz = 1   *  7  *  2  * 0.000001


Код программ заключайте в BBCode-тег CODE <V>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 сен 2007, 17:52 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
так в протеусе ведь нет модели тсопа
как же ты проверил что она пашет? :shock:

а вобще асм... ужось...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 сен 2007, 20:07 
Не в сети

Зарегистрирован: 30 мар 2007, 15:00
Сообщения: 80
Откуда: litva
Skype: bloodaxe777
прог. языки: pascal, delphi, C, ( basic, asm)-со словарём.
за то в протеусе есть кнопка и диод ;) :)..а для етого осцилогроф есть..36кз настроил по теорию правильно.Задержка между импулсами 14микросекунд, но в чем же глюк?кто в асме шарит помогите пожалутса:)  а нащет что асм ужос .неправда!хотябы можно смодулирывать код с минимальными затратами памети..ну и что,что в проге лехко запутатса, но также лехко ошибку найти.Я тоже думал ц что асм фуфло пока неузнал что за вещ! :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 сен 2007, 20:29 
Не в сети
Аватара пользователя

Зарегистрирован: 14 июл 2007, 23:38
Сообщения: 346
Откуда: SPb
прог. языки: немного албанский
В данном случае прога действительно изврат. Надо быть проще- брать за основу прерывания по совпадению таймеров в режиме сравнения например ( подключить указанный в даташите порт МК к светодиоду и автоматически дергать его ногой при равенстве регистра счета и регистра сравнения). Подпрограммы прерываний и полный контроль МК- это сила асма. Читайте даташит МК в разделе переферии и будет Вам счастье.
А проще всего проверить работу проги на низком уровне в АВРстудии. Там можно запустить симуляцию и оперировать регистрами. Все действия происходят как в МК-покомандно. Там же можно по ходу вносить изменения в регистры, например симулируя нажатие на кнопку или инициируя прерывание.  
А кстати, можно взглянуть на схему? И на алгоритм работы проги. Так в асме разбираться проще.

P.S. Я разгребу дела и выложу свою прогу для ТСОПа и ИК светодиода . Там таймер+внешнее прерывание, 15 строчек интуитивного кода.
P.P.S Странно что ловец неопытных душ еще не обьявился.
P.P.P.S Ну зачем нам в любительских утройствах компактность кода? Ерунда это все. И быстродействие тоже. А уж ошибку искать...... Боже упаси. Если бы я знал хоть один ЯВУ, то МК программил бы на нем. Проблемма в том, что не знаю, а времени изучать нету. Те вещи, которые делают масетра кодов, я и сам могу сделать на асме, а для реального программирования язык надо изучать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 сен 2007, 21:15 
Не в сети

Зарегистрирован: 30 мар 2007, 15:00
Сообщения: 80
Откуда: litva
Skype: bloodaxe777
прог. языки: pascal, delphi, C, ( basic, asm)-со словарём.
что косаетса асма то я ево только знаю 2 месеца...(блогодоря ВОВАНУ), могу пака себе позволить и безобразный код, а потом когда набю руку буду порядочно писать,еще до таимеров я недошол..да хот и програмно для начяла можно писат неисползывая таимеров, а таймеры будут потом... ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 сен 2007, 21:24 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
bloodaxe писал(а):
что косаетса асма то я ево только знаю 2 месеца...(блогодоря ВОВАНУ), могу пака себе позволить и безобразный код, а потом когда набю руку буду порядочно писать,еще до таимеров я недошол..да хот и програмно для начяла можно писат неисползывая таимеров, а таймеры будут потом... ;)

Я раньше тоже так думал, но через месяц свою же прогу написанную на асме не смог разобрать, а на С запросто.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 сен 2007, 12:43 
Не в сети

Зарегистрирован: 30 мар 2007, 15:00
Сообщения: 80
Откуда: litva
Skype: bloodaxe777
прог. языки: pascal, delphi, C, ( basic, asm)-со словарём.
С и асм ет 2 разные вешчи, и каждый язык имеет свои приемусчества, так что нельзя говорить что асм отстой а С там лутше..народ так кто нибуд поможет мне найти ошибку?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 сен 2007, 13:31 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
bloodaxe писал(а):
С и асм ет 2 разные вешчи, и каждый язык имеет свои приемусчества, так что нельзя говорить что асм отстой а С там лутше..народ так кто нибуд поможет мне найти ошибку?


Вряд ли здесь в основном Сишники.  :?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 сен 2007, 14:20 
Не в сети

Зарегистрирован: 30 мар 2007, 15:00
Сообщения: 80
Откуда: litva
Skype: bloodaxe777
прог. языки: pascal, delphi, C, ( basic, asm)-со словарём.
надо брать С за рога:)


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


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

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