Printable Version of Topic
Click here to view this topic in its original format |
Forums > Глюкодром > Парочка строк на Бейсике, для pic |
Posted by: Always Green on 26-06-2006, 02:28 |
Господа програмисты, помогите решить проблемку. Черкните пару строчек на пикбэйсике. Задача - прочитать уровень сигнала, скажем на PORTA.1 . Если высокий, то выставить третье состояние, скажем на PORTA.2, если низкий, выставить высокий уровень там же. Очень нужно наладить одну схемку на pic16f628a - заменил рекомендуемые схемой транзисторы и оптопары на имеющиеся под рукой и как результат придется подбирать резисторы и кондеры. Для освоения Ассемблера я староват, а Бейсик в самый раз. Если не влом, киньте ссылочку с описанием команд пикбейсика, желательно на русском. Поиском что-то не ищется, наверное не те слова в поиск вставляю... |
Posted by: TAHKEP on 26-06-2006, 10:34 |
Наверное, смогу написать такое, но только на pic'овском asm'e ![]() |
Posted by: Vlad_il on 26-06-2006, 11:02 |
1. Что ты имееш виду под 3-м состоянием? Насколько я помню PIC-и один из портов можно настрить под аналог тогда на ЦАП-е можно выстовить что хочеш. Маленький совет: хочеш работать нормально с PIC-ми учи C. |
Posted by: TAHKEP on 26-06-2006, 11:39 | ||
|
Posted by: Vlad_il on 26-06-2006, 12:24 |
Ню-Ню. Смотря какая программа. У нас проги были довольно сложные плюс экран, клавиатура и часы. Плюс с 10-ок аналоговых и дигитальных сенсоров и большое колечество релюшек. Нам не всегда C хатало из за сложных матиматических расчетов с точностью в 10-м знаке после запятой. Частенько начальник на форт переходил. |
Posted by: TAHKEP on 26-06-2006, 12:55 |
Дык я ж написал -- "несложных". Если есть сложная математика -- да, С сильно облегчит жизнь. Но если прога типа поглядеть что на одном порту и что-то сделать на другом -- вполне подходит асм. Кроме того в железках, которые должны активно работать в реальном времени асм имхо тоже предпочтительнее -- точно знаешь, что за команда выполняется в любой момент времени. Ну и это -- иногда довольно "развесистую" прогу нужно утоптать в "маленький" проц. |
Posted by: Always Green on 26-06-2006, 12:55 | ||||
С пиками работать практически не собираюсь, просто сейчас надо настроить всего одну неработающую по входам схему. Экономить память мне тоже ни к чему, посему непроизводительный бейсик мне тоже подходит. К примеру команда бейсика pause 1000 после компилирования превращается в кучу строчек на ассемблере. Что для полного чайника легче - одна строчка бейсика или куча строчек ассемблерас циклами, обращениями к стекам, регистрам и прочим ужасам программирования ![]() Что касается всяких си, паскалей, фортранов и прочих эсперанто, а так же до, ре, ми - на microchip.com есть бесплатный компилятор с picбейсика а как чайнику компилировать си? TAHKEP, в крайнем случае подойдет и ассемблер, но только в HEX, а то у меня нечем в хекс перевести... (из хекса в ассемблере я могу посмотреть через icprog). Если горишь желание помочь, несмотря на жару, то тогда задание конкретнее - читаем RB1 и RA1. Если на RB1 единица, то на RB6 ноль и наоборот. Если на RA1 единица, то на RB7 ноль и наоборот. В идеале конечно, мне надо выловить на RA1 наличие-отсутствие импульсов 22кгц, но так сильно напрягать не буду, тем более что не знаю, какой кварц подберу (сейчас 11,0294, а рабочая прошивка рассчитана на 14,31818), да и наверное это лишнее, во всяком случае, на данном этапе... |
Posted by: TAHKEP on 26-06-2006, 18:10 | ||||||||
HEX этого куска
P.S. Щас прийдёт ув. Vlad_il и будет громко смеяться ![]() |
Posted by: Vlad_il on 27-06-2006, 10:09 | ||
![]() |
Posted by: Always Green on 27-06-2006, 20:20 | ||||||||
TAHKEP, спасибо! Опробую через неделю - уехал на дачу. Вернулся только потому что там сдох телевизор и надо купить новый.
все понятно. BTFSS наверное то же самое что "IF то что после меня равно 0" Наверное имеется небольшая описка, в задании если RA1=0, то не RA7=1, а RB7=1. "Почти понятно" потому что, вроде получается что в любом случае, нольли на входе или единица, все равно выполняется команда
Ну а метка InitPORTS вообще выше моего понимания... То есть если не выполнить инициализацию, порты не будут работать ни на прием ни на отдачу? Это что-то вроде правил этикета, по которым прежде чем взять блюдо со стола надо предложить его другим?
В общем, вернусь с дачи, буду думать. Зря топик в глюкодром перенесли - тут еще флеймить и флеймить.... ![]() |
Posted by: TAHKEP on 28-06-2006, 12:37 | ||||||||||||
![]()
![]()
![]()
|