|
|
|
|
zakonnik: 0 var TRISB%00000001 1 var TRISB%10011111 И чего конкретно ты хотел добиться от компилятора и МК этими командами? Заблуждение начинающих программистов - "освою синтаксис языка, научусь писать код и смогу сам писать программы на свой вкус!". Ага, как бы не так. Ни компьютер, ни компилятор, ни МК думать не умеют. Думать умеет только программист. Приходится думать и за себя и за контроллер. А думать тааак неохооота... Распоряжаться-то зело приятнее! С людьми прокатывают такие выходки, как распоряжение начальника "ну ты там разберись и сделай всё как надо!" А с МК не прокатит. Он разбираться и догадываться не умеет. Ему каждый шаг конкретно указывать следует. |
|
|
picmaniac: И чего конкретно ты хотел добиться от компилятора и МК этими командами? сделать таблицу для семисегментных индикаторов Если чё не так поправьте |
|
|
zakonnik: АК, не подскажите ещё момен Да не занимался я программированием на пикбейсик давно, чтобы мне объяснить подробности, надо взять и подчитать описание компилятора (языка пикбейсикпро), а не лучше, если Вы сами это сделаете (можно даже с цитатами на форуме, если что не ясно), ссылку на рус. перевод я давал. |
|
|
picmaniac: Запущаем mb. Project - New Project. Обзываем проект желаемым имечком (Name), указываем папку, в которой он будет находиться (Path). Выбираем МК и задаём требуемое слово конфигурации. ОК. Пишем свой код. Компилим и тестируем. Сохраняем проект при необходимости. Он, насколько я помню, и сам сохраняется. Спасибо, picmaniac, теперь вполне понятно. Оказывается, тут примерно то же самое, что и в МПЛабе. Теперь вроде всё получается, как положено. И ещё один момент можно прояснить? В Микробейсике и в Микрокоде что, разные Бейсики используются??? Дело в том, что попробовал в первом кусок програмульки, которую АК предлагал для второго в качестве пробного(для мигания светодиода), и при попытке откомпилить получил кучу ошибок, вот таких: Identifier 'high' was not declared Sintax error: Expected 'end' but 'loop' found Sintax error: Expected '.' but " found ... А образец такой же проги из комплекта Микробейсика выглядит совсем по другому! Вот так: main: TRISB = 0 ' configure pins of portb as output PORTB = %11111111 ' turn ON diodes on portb delay_ms(1000) ' wait for 1 second PORTB = %00000000 ' turn OFF diodes on portb delay_ms(1000) ' wait for 1 second goto main ' endless loop end. Немного на Ассемблер похоже... И если Бейсики действительно разные, то существует ли описание на русском для "Бейсика из Микробейсика"? АК: Ограничение в 30 строчек дает демо компилятор, если вы скачали компилятор 2.47 с казус.ру (по выше приведенной ссылке), то, при работе с ним ограничений в количестве строк бейсик программы нет. Да, я скачал именно 2.47. Теперь хоть на душе полегчало, спасибо, АК, за разъяснение! Я-то думал, почему не могу найти таблетку, а её и не существует, по причине ненадобности!
|
|
|
Бейсики действительно разные. Неудивительно, ведь делались они совершенно разными конторами из разных стран. В комплекте mikroBasic есть файл с описанием, называется mikrobasic_pic.chm Копируем интересующие куски оттуда. Любой электронный переводчик поможет их нормально прочесть. Хотя бы www.translate.ru zakonnik: сделать таблицу для семисегментных индикаторов Этот замысел ясен. А подробнее? Как именно? zakonnik: Если чё не так поправьте А не лучше ли самому всё-таки разобраться? Сложного-то ничего нет в этом. Посмотри хотя бы пример из ветки "Ликбез № 2", на микробейсике написанный. Таблицы можно сделать в виде массива, одной строчкой, например: const dc7 as byte[11] = (0x00, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x3F) Массив - это обыкновенная таблица, в которой содержится в данном случае 11 чисел. Эти числа являются элементами массива. Каждое число занимает 1 байт. Номера элементов (индексы) начинаются с нуля и заканчиваются числом, равным (кол-во_элементов - 1). В данном случае последний элемент имеет индекс 10. Таблица хранится в данном случае в памяти МК. Тогда каждому индексу будет соответствовать элемент массива (байт), в который и записана требуемая комбинация сегментов. Если выдать этот байт в порт - получим желаемый символ на индикаторе. Пример: PORTB = dc7[4] В порт будет выдан байт 0x66. Индексом массива может быть не только число или константа, но и переменная. PORTB = dc7[MYVAR] Присваивая переменной различные значения, можно получить различные символы на индикаторе. |
|
|
picmaniac, таксс, надо переварить что Вы здесь написали я не понимаю вот этого : const dc7 as byte[11] = (0x00, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x3F) , начало ясно, а вот всякие 0x00, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x3F, для понимания сложновато. Это получаеться цифры в кокой- то системе счисления?
|
|
|
zakonnik: Это получаеться цифры в кокой- то системе счисления? Это массвив с именем "dc7" из 11 чисел, формата "byte", представленных в шестнадцатеричной системе исчисления. |
|
|
zakonnik: вот всякие 0x00, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x3F, для понимания сложновато Ничего там сложноватого нет. Это обыкновенные цифры, только записанные в шестнадцатиричном виде. Гуглить по словам "представление чисел в шестнадцатиричном виде" и разбираться. Посмотреть стр.112 книги Шпака. И например, ещё вот тут: http://naf-st.ru/main/digit/?sysct |
|
|
picmaniac, ну, допустим, научился я мигать светодиодами, подключенными к порту В в любых сочетаниях. А как, для регулирования скорости мигания, подключить(наверное, к порту А?) переменный резистор? Или 2 кнопки - +/-? В примерах я такого что-то не нашёл... |
|
|
AVM: А как, для регулирования скорости мигания, подключить(наверное, к порту А?) переменный резистор? Наверное так: в операторе PAUSE, в место числа (времени задержки), вписываем переменную. С помощью оператора POT считываем положение потенциометра и записываем в другую переменную. Производим необходимые математические вычисления со второй переменной и записываем в переменную для оператора PAUSE. Должно работать. AVM: Или 2 кнопки - +/-? В этом случае цикл со счетчиком должен запускаться по нажатию кнопки. Значение переменной по нажатию одной кнопки должно возрастать, а по нажатию другой кнопки уменьшаться. Эту же переменную используем как время задержки, для оператора PAUSE. |
|
|
|
|