Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Биты конфигурации (В протоне)
Биты конфигурации
vanish Дата: Пн, 03.05.2010, 22:53  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 63
Репутация: 0   ±
Замечания:   ±
На сайте с 08.04.2010

Статус: Offline

Всем привет, обьясните , пожалуйста как вписываются в программу биты конфигурации пика в протоне? По умолчанию или есть спец. процедура.Хорошо бы на примере. Не смог найти подробное описание. Может плохо искал. Заранее спасибо.
Сообщение отредактировал vanish - Пн, 03.05.2010, 22:54
ЯНДЕКС Дата: 03.05.2010
lvitat Дата: Вт, 04.05.2010, 00:33  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 37
Репутация: 0   ±
Замечания:   ±
На сайте с 13.06.2008

Статус: Offline

В хелпе вроде всё есть - команда CONFIG

Я не волшебник, я только учусь ...
terrarus Дата: Вт, 04.05.2010, 13:12  |                                                                                                                Сообщение # 3
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 542
Репутация: 16   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 63
Репутация: 0   ±
Замечания:   ±
На сайте с 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
Репутация: 16   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 63
Репутация: 0   ±
Замечания:   ±
На сайте с 08.04.2010

Статус: Offline

Увы, не помогло.Написал как вы сказали, заменил кондеры на кварце на 15 мкф. Почему тогда в протеусе работает?
retas Дата: Ср, 05.05.2010, 19:42  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 462
Репутация: 10   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

1. Ну если поставили 15мкф ...!!!
2. Я так всегда использую Config
3. Попробуйте просто на какой нить лапе задать моргание без каких
либо условий дабы убедиться что с железом всё ОК.
3.1. Если не пашет, прикажите работать от внутреннего осцила (без кварца).


Новый подход к питанию потребителей переменного тока: http://ekolaif.ucoz.ru
vanish Дата: Ср, 05.05.2010, 21:22  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 63
Репутация: 0   ±
Замечания:   ±
На сайте с 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
Группа: Модераторы
Ранг:  Специалист
Сообщений: 911
Репутация: 50   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Нормально код работает, поставьте подтягивающий резистор на порт кнопки, и паузу после нажатия, ~ 200мс.

Меня все время преследуют умные мысли...но я быстрее!!!
vanish Дата: Чт, 06.05.2010, 14:20  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 63
Репутация: 0   ±
Замечания:   ±
На сайте с 08.04.2010

Статус: Offline

Нет уважаемый не получилось.Делал так как вы говорили, подтягивающий резистор с ноги на + ставил 10 ком, потом 1,5 ком, результат такой же. Светодиод моргает сразу после включения. на кнопку не реагирует никак. Можeт с компилЯтором что то ?
Сообщение отредактировал vanish - Чт, 06.05.2010, 15:21
ADMIN Дата: Чт, 06.05.2010, 20:39  |                                                                                                                Сообщение # 11
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1111
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

vanish,
На сколько по времени загорается светодиод? Уточни хотя бы примерно +- 20 мс. Это во-первых. Во-вторых, возьми за правило - сначала определи все переменные, потом назначай направления работы портов. В-третьих, до начала программы назначай портам состояние, чтобы быть уверенным, что до того, как начала выполняться программа, все находится на "исходных позициях". Вопросы в форум.
ivan_fd Дата: Чт, 06.05.2010, 20:44  |                                                                                                                Сообщение # 12
Группа: Модераторы
Ранг:  Специалист
Сообщений: 911
Репутация: 50   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Quote (vanish)
Нет уважаемый не получилось.Делал так как вы говорили, подтягивающий резистор с ноги на + ставил 10 ком, потом 1,5 ком, результат такой же. Светодиод моргает сразу после включения. на кнопку не реагирует никак. Можeт с компилЯтором что то ?


Я в железе не пробовал, но в протеусе работает. Вы в протеусе пробовали?


Меня все время преследуют умные мысли...но я быстрее!!!
vanish Дата: Чт, 06.05.2010, 20:52  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 63
Репутация: 0   ±
Замечания:   ±
На сайте с 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

Я ее нашел в книге нашего пакистанского коллеги М.Амера
Извиняйте, кого напряг.Всем кто помогал мне огромное человеческое спасибо.
Судя по всему еще не раз вас напрягать буду. smile

retas Дата: Чт, 06.05.2010, 22:07  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 462
Репутация: 10   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Молодец, но всё таки странно от чего чут по другому написанное не работало.

Новый подход к питанию потребителей переменного тока: http://ekolaif.ucoz.ru
Сообщение отредактировал retas - Чт, 06.05.2010, 22:16
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Биты конфигурации (В протоне)
Страница 1 из 11
Поиск: