Технический форум по робототехнике.
Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.
Vovan » 20 ноя 2011, 22:10
Ага! Вот Дмитрий и попался

Ход конём! асм, асм, а потом вдруг бац! и си! Значит тактика через начальные понятия асма в си? Так не честно
Надо было сразу об этом сказать...
2 серж: да нет же... Ну раз с пальцем не получается, попробуй написать просто:
- Код: Выделить всё • Развернуть
;это просто пример
;а нужно написать всё
;комментируя каждую строчку
включить pinled ; включить светодиод
call pause ; сделать паузу
;пишем весь код и читаем комментарии, что получим?
Добавлено спустя 1 минуту 53 секунды:Только программа не последняя и не предпоследняя, а до них! Там только одна ошибка, а в последующих две и одна но другая....
Добавлено спустя 5 минут 41 секунду:Ой! там ещё одна есть... не заметил

последняя правильная тоже...
Но важно чтобы ты вот тут исправил и понял сам в чём подвох:
- Код: Выделить всё • Развернуть
включить pinled
начало:установить pinled
call pause36000<>0=djnz
выключить pinled
call pause36000<>0=djnz
переход в начало djnz
серж » 20 ноя 2011, 22:11
- Код: Выделить всё • Развернуть
main: включить pinled ;включить сд с частотой 36кгц
call pause36000<>0=djnz
выключить pinled ;выключить сд с частотой 36кгц
call pause36000<>0=djnz
goto djnz ;цикл закончен, переход к запуску этого же цикла
Vovan » 20 ноя 2011, 22:15
Ну правильно, конечно...
А вот тут найди ошибку:
- Код: Выделить всё • Развернуть
включить pinled
начало:установить pinled
call pause36000<>0=djnz
выключить pinled
call pause36000<>0=djnz
переход в начало djnz
Добавлено спустя 2 минуты 54 секунды:не гадай, а поводи пальцем по программе ИМЕННО ПО ЭТОЙ!
серж » 20 ноя 2011, 22:19
ошибка в последней строке, да и 2-ая лишняя. типа:
- Код: Выделить всё • Развернуть
main: включить pinled....
догнал!!!! после КАЖДОЙ!!! строки нуно ставить - ";"!!!
[size=85][color=green]Добавлено спустя 1 минуту 47 секунд:[/color][/size]
[code]включить pinled
начало:установить pinled ;
call pause36000<>0=djnz ;
выключить pinled ;
call pause36000<>0=djnz ;
переход в начало djnz ;
ОНО ???
Vovan » 20 ноя 2011, 22:20
Неа...
обозначим горящий светодиод "1", потухший "0", паузу "-", установку "\".
ведем пальцем:
1\-0-\-0-\-0-\-0-\-0-\-0-\-0-\-0- и т.д... что видим?
Светодиод то потухнет то погаснет никаких ни пачек ни импульсов нет...
Где ошибка?

серж » 20 ноя 2011, 22:34
а должно быть так я думаю:
1\-0-\-1-\-0-\-1-\-0-\-01\-0-\-1- и т.д...
- Код: Выделить всё • Развернуть
main: включить pinled ;включить сд с частотой 36кгц
call 36000<>0=djnz
выключить pinled ;выключить сд с частотой 36кгц
call 36000<>0=djnz
goto djnz ; переход к началу
команда - goto - звершение цикла! так? в этом косяк???
Vovan » 20 ноя 2011, 22:37
Опять не совсем... Должно быть так:
\1-0-1-0-1-0-1-0-1-......
Ну теперь то поправишь асм?

серж » 20 ноя 2011, 22:42
не знаю...
Добавлено спустя 2 минуты 47 секунд:- Код: Выделить всё • Развернуть
main: \ pinled ;включить сд с частотой 36кгц
call 36000<>0=djnz
\ pinled ;выключить сд с частотой 36кгц
call 36000<>0=djnz
goto djnz ; переход к началу
сАААвсем запутался... то правильно, то не правильно...
Добавлено спустя 1 минуту 30 секунд:прчем я ни одной команды не знаю! все из ваших постов, как из лунки, выуживаю!!!
Vovan » 20 ноя 2011, 22:43
Лан не парься

Раз ты ввел строку "установить пин как выход для светодиода", то не нужно ее каждый раз вызывать, достаточно одного раза в установочной части программы, а уж затем start или main (как вздумается)...
- Код: Выделить всё • Развернуть
установить pinled
начало:
включить pinled
call pause36000<>0=djnz
выключить pinled
call pause36000<>0=djnz
переход в начало djnz
Вот теперь ведем пальцем: \1-0-иснова1-0-тоесть1-0-1-0-1-0-1-0-1-0добесконечности...
серж » 20 ноя 2011, 22:44
Добавлено спустя 2 минуты 47 секунд:- Код: Выделить всё • Развернуть
main: \включить pinled ;включить сд с частотой 36кгц
call 36000<>0=djnz
\выключить pinled ;выключить сд с частотой 36кгц
call 36000<>0=djnz
goto djnz ; переход к началу
Vovan » 20 ноя 2011, 22:47
Да нет в программе черточки не нужны! Я ж не могу пальцем виртуально вести... Вот и придумал замену...
серж » 20 ноя 2011, 22:51
в последней строке убрать djnz???
- Код: Выделить всё • Развернуть
установить pinled ; - вован, если ты про эту строку, то я ее уже забыл использовать. и в последующих прогах не писал.
начало:
включить pinled
call pause36000<>0=djnz
выключить pinled
call pause36000<>0=djnz
переход в начало djnz
Vovan » 20 ноя 2011, 22:54
Да пофиг что там написано! Дмитрий уже говорил...
Главное въехать как прога работает, а работает она ПООЧЕРЕДИ.
Ну хорошо!
У тебя было:
включаем, устанавливаем, пауза, выключаем, пауза, устанавливаем, пауза, выключаем, пауза устанавливаем, пауза
А нужно:
устанавливаем,включаем, пауза, выключаем,пауза, включаем пауза,выключаем,пауза включаем, пауза, выключаем, пауза включаем, пауза
Я написал правильную прогу (выше) найди различие...
Последний раз редактировалось
Vovan 20 ноя 2011, 22:56, всего редактировалось 1 раз.
серж » 20 ноя 2011, 22:58
сделай скрин и в поинте чертачками укажи где 1., где 0., и где \.
Добавлено спустя 2 минуты 18 секунд:Vovan писал(а):Ну правильно, конечно...
А вот тут найди ошибку:
- Код: Выделить всё • Развернуть
включить pinled
начало:установить pinled
call pause36000<>0=djnz
выключить pinled
call pause36000<>0=djnz
переход в начало djnz
Добавлено спустя 2 минуты 54 секунды:не гадай, а поводи пальцем по программе ИМЕННО ПО ЭТОЙ!
хм... поменять местами верхние две строки.
Vovan » 20 ноя 2011, 23:00
Правильно:
- Код: Выделить всё • Развернуть
установить pinled
начало:
включить pinled
call pause36000<>0=djnz
выключить pinled
call pause36000<>0=djnz
переход в начало djnz
Неправильно:
- Код: Выделить всё • Развернуть
включить pinled
начало:
установить pinled
call pause36000<>0=djnz
выключить pinled
call pause36000<>0=djnz
переход в начало djnz
Добавлено спустя 1 минуту 39 секунд:Да поменять-то поменять... Но почему?
Потому что не будет ничего, все время будет просто потухший СД...