http://forum.getchip.net/

Начинающим программировать в АБ
http://forum.getchip.net/viewtopic.php?f=16&t=231
Страница 1 из 22

Автор:  Kolini [ 08 июн 2012, 17:14 ]
Заголовок сообщения:  Начинающим программировать в АБ

Предлагаю бывалым и опытным пользователям АБ в этом топике написать что-то типа скрижалей или "10 заповедей" программирующим на АБ, в которых вы поделились бы своими правилами и высказали рекомендациями новичкам, для избежания типичных ошибок.

Ну например:
1. При написании программ нужно "забыть" про существование регистров R16 и R17 и не использовать их в коде программы. Их использует компилятор и будет нарушать логику вашей программы.
2. При написании программ обработки прерываний всегда вначале сохраняйте в стеке R16, R17, SREG, а в конце перед выходом из прерывания восстанавливайте их из стека.
3. При модификации двойных регистров X, Y и Z обязательно сохраняйте их значения в стеке и восстанавливайте после окончания работы с ними.
4. Помните, что в отличие от подпрограммы, пользовательские макросы занимают в памяти в N раз больше пространства, где N - количетсво обращений к этому макросу.
5. Шаблоны всех возможных команд среды есть в меню "Отображение"-"Шаблоны". Там есть мини справка и их прямо оттуда можно вставлять в программу
6. В качестве ключей-признаков, имеющих только два состояния "0" и "1" лучше использовать бит регистра, а не целый регистр или байт памяти
7. При отладке программы кроме стандартных окон можно следить за любыми переменными, счетчиками и регистрами по своему усмотрению через окно "Watches". Открывается в отладчике "Открыть"-"Watches"-#0 и потом нажать Ins.
и т.д.

Думаю что есть еще много полезных советов которые помогут сэкономить кучу полезнго времени новичкам на поиск проблемы или ошибки в работе алгоритма.

Автор:  SVN [ 08 июн 2012, 18:20 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Идея отличная и очень востребованная, :OK: но так как я, являюсь новичком, добавить к выше сказанному к сожалению пока нечего.

Автор:  iamstreetstyle [ 09 июн 2012, 18:10 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Дам дельный совет начинаюшим билдерцам поскорее закончить с ним и пересесть на язык высокого уровня! Которых шас пруд пруди для аврок

Автор:  SVN [ 09 июн 2012, 18:40 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

iamstreetstyle писал(а):
Дам дельный совет начинаюшим билдерцам поскорее закончить с ним и пересесть на язык высокого уровня! Которых шас пруд пруди для аврок

Это совет профессионала знающего АВ в совершенстве или человека, который просто решил поумничать, а сам кроме одного языка не знает не чего? :-) Не вижу аргументов данного совета. ;)

Автор:  iamstreetstyle [ 09 июн 2012, 19:08 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Это совет человека который просто решил поумничать :) нет даже так паумничить :) (Запрешенно умничить ? Писать с ошибками ? Красную тряпку на флагшток хочеш повесить ?)
Я знаю Pascal и СИ, а когдато и Basic но забыл напроч :)

Автор:  iamstreetstyle [ 09 июн 2012, 19:14 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Хотя лучше сказать знаком с этими языками :)

Автор:  SVN [ 09 июн 2012, 19:29 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

А Algorithm Builder Вы знаете? Похоже, что нет. Тогда как можно рассуждать о том чего не знаешь? Высококлассные программисты о любом языке не скажут, что он плох или самый лучший. Так как, смотря какая задача поставлена перед программистом, и тогда решается на чём лучше писать в данном конкретном случае. Так что Ваш аргумент (просто поумничать), принят. :-)

Автор:  Kolini [ 10 июн 2012, 20:19 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Тема какой из языков или сред программирования лучше, уже множество раз изъезжена и прожевана. И тем не менее, при любых точках зрения, в каждом из языков есть яркие и выразительные преимущества по сравнению с другими средами программирования. Обращаясь к iamstreetstyle могу 100% заявить, что при самом великолепном знании С++ есть вещи, которые Вы не сможете сделать в этой среде в отличие от АБ, и тем более в отличие от ассемблера. Если есть сомнения по этому высказыванию - могу прямо тут сформулировать такого рода задачу.

Автор:  Гость [ 06 авг 2012, 21:39 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Kolini писал(а):
Предлагаю бывалым и опытным пользователям АБ в этом топике написать что-то типа скрижалей или "10 заповедей" программирующим на АБ, в которых вы поделились бы своими правилами и высказали рекомендациями новичкам, для избежания типичных ошибок.

Это начальные правила.
Для написания сложных программ потребуются правила, с помощью которых можно легко и просто писать большие программы.
Тут можно предложить следующие правила:

1. Вводить удобочитаемые названия переменных. Здесь получается творчество, похожее на литературное.
Для отличия формата переменных удобно ввести префиксы. Стандартными префиксами будут следующие:
с_ - константа,
b_ - битовая переменная (редко используется),
flg_ - флаг,
p_ - вывод порта.
Часто к префиксу вывода порта удобно добавить число 0 или 1, показывающее, каким сигналом срабатывает устройство, подключенное к данному выводу порта.
Например, пусть к выводу порта подключен светодиод, показывающий пуск устройства, зажигается при подаче 0. Тогда согласно сказанному выше зажечь светодиод можно командой
0 -> p0_svd_PUSK
svd – стандартное сокращенное название светодиода.

2. Использовать стандартную библиотеку подпрограмм. Вот с этим, насколько я знаю, в АБ плохо, каждый создает сам по своему усмотрению. А подпрограммы значительно сокращают время разработки.

3. Минимальные действия в аппаратных прерываниях. Чаще всего при аппаратном прерывании устанавливается программный флаг, который затем обрабатывается основной программой в нужное время в нужном месте.

4. Исключать боковые выходы из подпрограмм.

Отдельный большой вопрос, как писать операционную систему на АБ.

Автор:  Dust [ 07 авг 2012, 08:28 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Цитата:
Отдельный большой вопрос, как писать операционную систему на АБ.

операционную систему куда? на Atmega? это чота слишком... а так ОС пишется на болие высоких языках программирования, например С/С++....

Страница 1 из 22 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/