Биты конфигурации
|
vanish |
Дата: Пн, 03.05.2010, 22:53 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
65
Замечания:
±
На сайте с 08.04.2010
Статус:
Offline
|
Всем привет, обьясните , пожалуйста как вписываются в программу биты конфигурации пика в протоне? По умолчанию или есть спец. процедура.Хорошо бы на примере. Не смог найти подробное описание. Может плохо искал. Заранее спасибо.
Сообщение отредактировал
vanish - Пн, 03.05.2010, 22:54
|
|
|
|
|
lvitat |
Дата: Вт, 04.05.2010, 00:33 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
37
Замечания:
±
На сайте с 13.06.2008
Статус:
Offline
|
В хелпе вроде всё есть - команда CONFIG
Я не волшебник, я только учусь ...
|
|
|
|
|
terrarus |
Дата: Вт, 04.05.2010, 13:12 | Сообщение # 3 |
Группа:
Пользователи
Ранг:
Разобрался
Сообщений:
542
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Конечно искали вы плохо. можно сказать, что даже вообще не искали. Есть такой оператор в Proton-e, и называется он Config. Его описание можно найти на ресурсе http://terrarus.ucoz.ru/proton_plus_ide/index.html Однако при программировании на Proton-e в большинстве случаев его использовать не нужно потому, что Proton сам настраивает конкретный микроконтроллер директивами Declare и Device по умолчанию, например: Device 16F876A ' Использовать микроконтроллер 16F876A Declare Xtal 4 ' Использовать кварцевый генератор на 4 МГц '-----------------------------Настройки подключения ЖКИ----------------------------- Declare LCD_Type ALPHA ' Тип ЖКИ - буквенно-цифровой Declare LCD_DTPin PORTA.0 ' Порт данных ЖКИ Declare LCD_ENPin PORTA.4 ' Управление цепью E Declare LCD_RSPin PORTA.5 ' Управление цепью RS Declare LCD_Interface 4 ' 4-х битная разрядность шины данных Declare LCD_CommandUs 2000 ' Задержка перед посылкой команды Declare LCD_DataUs 50 ' Задержка перед посылкой данных Declare LCD_Lines 4 ' Количество строк ЖКИ Declare All_Digital = On ' Сделать все порты цифровыми Использовать Config нужно тогда, когда нужно "тонко" настроить PIC-микроконтроллеры. Но этот оператор можно использовать только с 12- и 14-разрядными микроконтроллерами. Из-за сложностей, которые связаны с настройкой 16-разрядных микроконтроллеров, эта директива не совместима с этими устройствами. Поэтому, если требуется установить какие-то специфические параметры для них, то следует в тело программы на языке Basic вставить подпрограмму или фрагмент, написанный на ассемблере, используя команды ASM...ENDASM, или символ @. Эти настройки параметров могут быть изменены во время программирования. Но еще раз подчекну, что в большинстве случаев тонкой настройки начинающему просто делать ну нужно, и долго еще не придется, так как Proton сам настроит конкретный микроконтроллер директивами Declare и Device по умолчанию.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Вт, 04.05.2010, 13:20
|
|
|
|
|
vanish |
Дата: Вт, 04.05.2010, 22:59 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
65
Замечания:
±
На сайте с 08.04.2010
Статус:
Offline
|
Здесь такое дело получается практиковался я в написании программ на протон айди, испытывал в протеусе все работало. Как только перенес на железо не пашет и все тут. Вот например программа "кнопка" DEVICE 16F628 Declare Xtal 4 TRISB=%00000000 TRISA=%00000100 SYMBOL BUT=PORTA.2 SYMBOL LED=PORTB.1 LOOP: IF BUT=0 THEN TOGGLE LED WHILE BUT=0: DELAYMS 100: WEND ENDIF GOTO LOOP END Ошибка в монтаже исключается.Опыт в этом есть (например собирал Пиккит2, заработал сразу). Несколько раз проверял монтаж. Пик программировал на Автопроге. Я вот и пенял на конфигурацию. Кварц использовал внешний, 4 мгц, кондеры по 27 пкф, 4 ногу через 1 ком на + питания. В чем может быть дело? И еще, если я вписал Declare Xtal 4, какой генератор имеется ввиду: XT, HS, RC ?
Сообщение отредактировал
vanish - Вт, 04.05.2010, 23:02
|
|
|
|
|
terrarus |
Дата: Ср, 05.05.2010, 14:56 | Сообщение # 5 |
Группа:
Пользователи
Ранг:
Разобрался
Сообщений:
542
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Добавьте третьей строкой DECLARE ALL_DIGITAL = ON ;Установить все порты цифровыми входами/выходами и все будет ОК Quote (vanish) я вписал Declare Xtal 4, какой генератор имеется ввиду: XT, HS, RC ? В данном случае имеется в виду внешний кварц с частотой 4 мГц. Обычно для кварцев 4 мГц и 20 мГц я использую одинаковые конденсаторы от 15 до 22 пф. LOOP: IF BUT=0 THEN TOGGLE LED WHILE BUT=0: DELAYMS 100: WEND ENDIF GOTO LOOP этот блок я бы переписмал так: LOOP: IF BUT=0 THEN TOGGLE LED: DELAYMS 100 GOTO LOOP или так: LOOP: WHILE BUT=0: TOGGLE LED: DELAYMS 100: WEND GOTO LOOP
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Ср, 05.05.2010, 15:06
|
|
|
|
|
vanish |
Дата: Ср, 05.05.2010, 18:11 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
65
Замечания:
±
На сайте с 08.04.2010
Статус:
Offline
|
Увы, не помогло.Написал как вы сказали, заменил кондеры на кварце на 15 мкф. Почему тогда в протеусе работает?
|
|
|
|
|
retas |
Дата: Ср, 05.05.2010, 19:42 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
468
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
1. Ну если поставили 15мкф ...!!! 2. Я так всегда использую Config 3. Попробуйте просто на какой нить лапе задать моргание без каких либо условий дабы убедиться что с железом всё ОК. 3.1. Если не пашет, прикажите работать от внутреннего осцила (без кварца).
|
|
|
|
|
vanish |
Дата: Ср, 05.05.2010, 21:22 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
65
Замечания:
±
На сайте с 08.04.2010
Статус:
Offline
|
Совсем не работало потому что немного намудрил с внутрисхемным программированием в автопроге. Задал моргание светодиода. Моргает с заданной скоростью, на кварце 4мгц.Сделал бегущие огни 4 канала, работает хорошо. Попробовал с кнопкой, не получилось.помоeму проблeмa с инициaлидaциeй входa. светодиод загорается сразу и не реагирует на кнопку, как бы пропускается условие.Пробовал несколько( в том числе приведенные вами варианты) вариантов, остановился на button. Вот один из вариантов. DEVICE 16F628 Declare Xtal 4 DECLARE ALL_DIGITAL = ON output portb.3 DIM BUF AS BYTE INPUT PORTA.1 SYMBOL BUT=PORTA.1 SYMBOL LED=PORTB.3 DELAYMS 500 CLEAR LOW LED LOOP: BUTTON BUT,0,100,5,BUF,1,LOOP1 GOTO LOOP LOOP1: TOGGLE LED GOTO LOOP
Сообщение отредактировал
vanish - Чт, 06.05.2010, 07:36
|
|
|
|
|
ivan_fd |
Дата: Чт, 06.05.2010, 11:33 | Сообщение # 9 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
1127
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Нормально код работает, поставьте подтягивающий резистор на порт кнопки, и паузу после нажатия, ~ 200мс.
Меня все время преследуют умные мысли...но я быстрее!!!
|
|
|
|
|
vanish |
Дата: Чт, 06.05.2010, 14:20 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
65
Замечания:
±
На сайте с 08.04.2010
Статус:
Offline
|
Нет уважаемый не получилось.Делал так как вы говорили, подтягивающий резистор с ноги на + ставил 10 ком, потом 1,5 ком, результат такой же. Светодиод моргает сразу после включения. на кнопку не реагирует никак. Можeт с компилЯтором что то ?
Сообщение отредактировал
vanish - Чт, 06.05.2010, 15:21
|
|
|
|
|
ADMIN |
Дата: Чт, 06.05.2010, 20:39 | Сообщение # 11 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1134
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
vanish, На сколько по времени загорается светодиод? Уточни хотя бы примерно +- 20 мс. Это во-первых. Во-вторых, возьми за правило - сначала определи все переменные, потом назначай направления работы портов. В-третьих, до начала программы назначай портам состояние, чтобы быть уверенным, что до того, как начала выполняться программа, все находится на "исходных позициях". Вопросы в форум.
|
|
|
|
|
ivan_fd |
Дата: Чт, 06.05.2010, 20:44 | Сообщение # 12 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
1127
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Quote (vanish) Нет уважаемый не получилось.Делал так как вы говорили, подтягивающий резистор с ноги на + ставил 10 ком, потом 1,5 ком, результат такой же. Светодиод моргает сразу после включения. на кнопку не реагирует никак. Можeт с компилЯтором что то ? Я в железе не пробовал, но в протеусе работает. Вы в протеусе пробовали?
Меня все время преследуют умные мысли...но я быстрее!!!
|
|
|
|
|
vanish |
Дата: Чт, 06.05.2010, 20:52 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
65
Замечания:
±
На сайте с 08.04.2010
Статус:
Offline
|
Да, уважаемый. В протеусе работают все мои проекты. Хотел попробовать в железе, сразу не вышло. Братцы короче вот эта прога заработала в железе полноценно DEVICE 16F628 Xtal 4 ALL_DIGITAL = TRUE OUTPUT PORTB INPUT PORTA SYMBOL LED=PORTB.0 SYMBOL SW=PORTA.1 LOW LED LOOP: IF SW=0 THEN DELAYMS 500 TOGGLE LED END IF GOTO LOOP Я ее нашел в книге нашего пакистанского коллеги М.Амера Извиняйте, кого напряг.Всем кто помогал мне огромное человеческое спасибо. Судя по всему еще не раз вас напрягать буду. 
|
|
|
|
|
retas |
Дата: Чт, 06.05.2010, 22:07 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
468
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Молодец, но всё таки странно от чего чут по другому написанное не работало.
Сообщение отредактировал
retas - Чт, 06.05.2010, 22:16
|
|
|
|
|
Legioner |
Дата: Чт, 02.08.2018, 15:17 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 22.08.2015
Статус:
Offline
|
Ребята помогите не понимаю как в PicBasic PRO задать биты конфигурации. нашел пример @ DEVICE HS_OSC, WDT_OFF, CPD_OFF, PWRT_ON, PROTECT_OFF, BOD_ON, WRT_OFF но он не работает пишут ошибку.
Чембулов
|
|
|
|