|
Zandy: Попробуйте сами открыть ссылку. Кракозябры Правой кнопкой на странице: кодировка->кирилица(windows). Или: кодировка->дополнительно->кирилица(windows). picmaniac: НУ ЗАДАВАЙТЕ ЖЕ ВОПРОСЫ КОНКРЕТНО!!! По макрокомандам. Вот, к примеру: jnz MACRO metka1 ; условный переход, btfss STATUS,Z ; если не 0 goto metka1 endm Допустим, мы используем её три траза, значит в тексте будет три "metka1", или как? Компилятор это в ступор не введет? Приведите, пожалуста, пример кода с этими командами. |
|
|
Все-же лучше, рисуя алгоритмы, общепринятого придерживаться http://science.web.tstu.ru/19.003-80.rar Размеры блоков точно можно и не соблюдать, сейчас в этом свобода... Zandy! У Вас в алгоритме прямоугольник и в нем "задержка 100мс" это ведь означает, что контроллер только этим занимается..а мир в это время меняется, кстати за это время могут еще и другую кнопку ткнуть.... Когда-то удалось посмотреть листинг контроллера клавиатуры Писюка...даа наворочено там. И недаром, она ведь "прощает" короткий дребезг соседней от нажимаемой клавиши при быстром немного сбоку движении пальцев.. |
|
|
Zandy: вы присоединитесь или нет? .. да я вот смотрю, на то, что Вы тут picmaniac-oм понаписали.. для меня это, ну если не "китайская", то как минимум "английская" (со словарём) грамота. Ещё немного и "присоединюсь".. - Чует моё сердце... picmaniac: ЗАДАВАЙТЕ ЖЕ ВОПРОСЫ КОНКРЕТНО!!! Вас наверное удивит мой вопрос, но скажите пожалуйста, я правильно понимаю, что есть какой-то стандартный набор команд, который пишется в начале ВСЕХ программ. например: __CONFIG 3FF0h - непонятно, что это и для чего... или: org 0 - почему "0", а не скажем 100h.., и что значит "org"? И, самое главное, надо ли каждый наз в программах писать: TMR0 EQU 01h PC EQU 02h STATUS EQU 03h FSR EQU 04h ; pегистpы ввода/вывода CNTRLPORT EQU 05h DATAPORT EQU 06h ; ячейки ОЗУ SCRATCH EQU 0Ch DIGIT EQU 0Dh ; биты pегистpа STATUS C EQU 0h DC EQU 1h Z EQU 2h PD EQU 3h TO EQU 4h RP EQU 5h ; упpавляющие pегистpы TRISA EQU 85h TRISB EQU 86h ; слова инициализации для поpтов ввода/вывода INITA EQU B'00000000' INITB EQU B'00000000' Вот в чём вопрос!? И, если не надо, то как же без них? Они ведь нужны для инициализации-то... Zandy: Мне одному не так "позорно" будет. Так что видите, мне более позорно, потому что я не знаю даже простЕЙШих вещей... |
|
|
Vlad_Petr: это ведь означает, что контроллер только этим занимается..а мир в это время меняется, кстати за это время могут еще и другую кнопку ткнуть.... Это я понимаю, но мы работаем по конкретному заданию №3. Оно упрощено в этом смысле. Конечно, если заморачиваться дребезгом и различными вариантами нажатия кнопок по полной программе, то наверное надо делать не так. Будет другое задание, там и будем разбираться. Левон: __CONFIG 3FF0h - непонятно, что это и для чего... Ненаглядно, да. Здесь я виноват, каюсь. Объясню. Существуют т. н. биты конфигурации, которые надо прописывать в начале любой программы. Там можно установить различные опции, например, выбрать тип генератора, защитить программу от чтения, включить или выключить WDT и т. д. Чтобы их выставить, я поступаю очень просто. В меню MPLAB захожу в configure - configuration Bits. Там выставляю необходимые мне опции, считываю 16-ричное число в столбце Value и вставляю его в программу. Можно поступать по-другому, может более наглядно прописывать текстом, но мне кажется, что я делаю проще. Левон: org 0 - почему "0", а не скажем 100h.., и что значит "org"? Это директива асма, означает, с какого адреса начинается выполнение программы. Если не указана, то программа начинается с 0 адреса, поэтому "org 0", вобщем-то смысла не имеет, можно не писать, но вдруг вы начнете с другого адреса, а такое написание, как-то дисциплинирует. Левон: И, самое главное, надо ли каждый наз в программах писать: TMR0 EQU 01h PC EQU 02h STATUS EQU 03h FSR EQU 04h ; pегистpы ввода/вывода CNTRLPORT EQU 05h DATAPORT EQU 06h ; ячейки ОЗУ SCRATCH EQU 0Ch DIGIT EQU 0Dh ; биты pегистpа STATUS Тут дело такое. Если к проекту присоединен .INC файл, то регистры специального назначения можно и не прописывать, если вы будете пользоваться мнемоникой, как в INC файле. Также названиям стандартных битов там уже присвоены номера, поэтому в программе, вместо номера бита можно указывать название. Регистры общего назначения, с которыми вы работаете, прописывать необходимо. Если вместо какой-то константы хотите использовать в программе буквенное обозначение, тоже надо прописывать. Тоже и с вами придуманными названиями битов - тоже надо прописывать. Например: Левон: слова инициализации для поpтов ввода/вывода INITA EQU B'00000000' INITB EQU B'00000000' Это всего навсего означает, что в программе вместо того, чтобы писать B'00000000', вы можете записать INITA или INITB. Только и всего. Никакого потаенного смысла это не имеет, а делается для удобства чтения и понимания написанной программы.
|
|
|
Splav56: Цикл статей ASD в журнале Радио. Где бы этот цикл "качнуть" одним файлом. А то копаться в старых журналах - "многих нет, а те далече". Левону. По поводу прописывания регистров, переменных, констант, битов и т. д. Есть тут небольшая хитрость, которой можно воспользоваться, хотя это и не методологично. При написании программы можете вставлять любые названия ваших регистров, констант, битов в виде любой мнемоники или абревиатур. При ассемблировании проекта MPLAB выдаст вам кучу ошибок. Двойной щелчок на ошибке перекинет вас в ту строчку листинга, где эта ошибка находится. Т. е, например, забыли прописать переменную - пожалуйста получите ошибку. Берете и прописываете. Здесь как раз все просто. MPLAB просто не даст вам сделать эти глупые ошибки, он сам следит за тем, чтобы с точки зрения оформления программы, все было правильно. |
|