Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Модератор форума: demanik  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Библиотека для Proton IDE (Создание библиотек)
Библиотека для Proton IDE
Aleksey_174 Дата: Пт, 02.11.2018, 16:26  |                                                                                                                Сообщение # 46
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 52
Репутация: 8   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

А у тебя случайно DHT11 рабочего кода нет с протеусом. Уже сколько перепробывал не работают в протеусе уже замучился, толи сам протеус глючит..
ЯНДЕКС Дата: 02.11.2018
xaker-sss Дата: Пт, 02.11.2018, 17:49  |                                                                                                                Сообщение # 47
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 230
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Цитата Aleksey_174 ()
А у тебя случайно DHT11
Такого нет, а протеус глючит, у меня вообще 18В20 в нем не работает если все ноги проца загрузить, измучился пару месяцев назад, когда контроллер управления стиральной машиной делал, и на протон думал, и на протеус, пока в железе не собрал, тогда понял, что это протеус глючный.


ПРОТОН ЭТО ВЕЩЬ.
xvovanx Дата: Ср, 07.11.2018, 13:04  |                                                                                                                Сообщение # 48
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 336
Репутация: 20   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата xaker-sss ()
и на протон думал, и на протеус, пока в железе не собрал, тогда понял, что это протеус глючный.

Я заметил, что у меня Протеус адекватно отображает индикацию только при кварце 4МГц. Есле в железе стоит на 16-32МГц, то код приходится корректировать под частоту кварца на 4, доводить код до ума, а потом уже для своего железа менять код под нужный кварц.

Сообщение отредактировал xvovanx - Ср, 07.11.2018, 13:06
ivan_fd Дата: Ср, 07.11.2018, 13:56  |                                                                                                                Сообщение # 49
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1009
Репутация: 82   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Не знаю ребята, лично у меня с протеусом, почти, никаких проблем не возникало.
xvovanx, можете показать пример неадекватности протеуса с кварцами??

Цитата Aleksey_174 ()
А у тебя случайно DHT11 рабочего кода нет с протеусом. Уже сколько перепробывал не работают в протеусе уже замучился, толи сам протеус глючит..

Что бы датчики влажности нормально работали в протеусе, нужно в настройках модели (Time Select Low) поставить не 18мс, а 1мс.


Меня все время преследуют умные мысли...но я быстрее!!!
xvovanx Дата: Ср, 07.11.2018, 14:29  |                                                                                                                Сообщение # 50
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 336
Репутация: 20   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата ivan_fd ()
можете показать пример неадекватности протеуса с кварцами??

вечером дома буду, восспроизведу. Вообщем показания на дисплех "обгрызает", половину каждого знака делает не контрастным , а на второй половине знаков нет пикселей

Вот
на верхнем скрине установлена частота кварца 4, на нижнем -16 МГц . На 16 частоте инфо на дисплее не просто стоит, а прыгает, дергает, мельтешит.

P.S. пробовал на 8МГц -тоже нормально, что выше - беда
Прикрепления: 1940811.jpg(363.5 Kb)

Сообщение отредактировал xvovanx - Ср, 07.11.2018, 14:55
Aleksey_174 Дата: Чт, 08.11.2018, 12:09  |                                                                                                                Сообщение # 51
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 52
Репутация: 8   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Цитата ivan_fd ()
Что бы датчики влажности нормально работали в протеусе, нужно в настройках модели (Time Select Low) поставить не 18мс, а 1мс.
Попробывал и так все равно не работает, код взят отсюда там пишут работает
Прикрепления: ProteusTest.rar(69.6 Kb)
ivan_fd Дата: Чт, 08.11.2018, 16:28  |                                                                                                                Сообщение # 52
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1009
Репутация: 82   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Не знаю, что там у них работает.

Тут я немного не внимательно посмотрел Ваш пост и не увидел, что датчик у Вас DHT11. Для него должно быть 18мс, а для DHT22 - 1мс.

Сделал код на протоне, смотрите, изучайте.
Небольшая подсказка, так на будущее, Model Type резистора подтяжки датчика ставьте DIGITAL
И оставьте в покое эти PulsIn.
Прикрепления: dht11.zip(71.4 Kb)


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Чт, 08.11.2018, 16:29
Aleksey_174 Дата: Пт, 09.11.2018, 18:13  |                                                                                                                Сообщение # 53
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 52
Репутация: 8   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Кто нибудь знает как настроить конфигурацию 18F2520 на внутренний кварц, хотел проверить DHT11 на железе и не получается, в протеусе идет, а в железе тормозит не совпадают delayms.
Device = 18F2520
Config_Start
   OSC = HSPLL ; HS oscillator, PLL enabled (Clock Frequency=4 x FOSC1)
   FCMEN = OFF ; Fail-Safe Clock Monitor disabled
   IESO = ON ; Oscillator Switchover mode enabled
   PWRT = OFF ; PWRT disabled
   BOREN = OFF ; Brown-out Reset disabled in hardware and software
   WDT = OFF ; WDT disabled (control is placed on the SWDTEN bit)
   MCLRE = OFF ; RE3 input pin enabled; MCLR disabled
   LPT1OSC = OFF ; Timer1 configured for higher power operation
   PBADEN = OFF ; PORTB<4:0> pins are configured as digital I/O on Reset
   STVREN = OFF ; Stack full/underflow will not cause Reset
   LVP = OFF ; Single-Supply ICSP disabled
   XINST = OFF ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
   DEBUG = OFF ; Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
   CP0 = OFF ; Block 0 (000800-001FFFh) not code-protected
   CP1 = OFF ; Block 1 (002000-003FFFh) not code-protected
   CP2 = OFF ; Block 2 (004000-005FFFh) not code-protected
   CP3 = OFF ; Block 3 (006000-007FFFh) not code-protected
   CPB = OFF ; Boot block (000000-0007FFh) not code-protected
   CPD = OFF ; Data EEPROM not code-protected
   WRT0 = OFF ; Block 0 (000800-001FFFh) not write-protected
   WRT1 = OFF ; Block 1 (002000-003FFFh) not write-protected
   WRT2 = OFF ; Block 2 (004000-005FFFh) not write-protected
   WRT3 = OFF ; Block 3 (006000-007FFFh) not write-protected
   WRTB = OFF ; Boot block (000000-0007FFh) not write-protected
   WRTC = OFF ; Configuration registers (300000-3000FFh) not write-protected
   WRTD = OFF ; Data EEPROM not write-protected
   EBTR0 = OFF ; Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
   EBTR1 = OFF ; Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
   EBTR2 = OFF ; Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
   EBTR3 = OFF ; Block 3 (006000-007FFFh) not protected from table reads executed in other blocks
   EBTRB = OFF ; Boot block (000000-0007FFh) not protected from table reads executed in other blocks
Config_End

xtal = 4
доцент2 Дата: Пт, 09.11.2018, 18:34  |                                                                                                                Сообщение # 54
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 423
Репутация: 7   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Цитата Aleksey_174 ()
OSC = HSPLL ; HS oscillator, PLL enabled (Clock Frequency=4 x FOSC1)
Если Вам не нужен умножитель на 4, то OSC=HS
Aleksey_174 Дата: Пт, 09.11.2018, 18:47  |                                                                                                                Сообщение # 55
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 52
Репутация: 8   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Цитата доцент2 ()
Если Вам не нужен умножитель на 4, то OSC=HS
Пробовал тоже самое получается
Мне нужно чтоб, delayms 1000 равнялось 1 секунде, а получается 4 секунды
доцент2 Дата: Пт, 09.11.2018, 20:10  |                                                                                                                Сообщение # 56
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 423
Репутация: 7   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

OSC=HS это для внешнего кварца 4МГц
anatol Дата: Пн, 12.11.2018, 00:36  |                                                                                                                Сообщение # 57
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 577
Репутация: 18   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Aleksey_174, PLL включается только для 4 и 8 мГц внутреннего генератора. Об этом сказано на 27 странице этого документа.
И вот что я вычитал
Цитата
4-кратный частотный множитель можно использовать с внутренним блоком генератора для
получения более быстрых тактовых частот устройства, чем это обычно
возможно при использовании внутреннего
осциллятор. Когда включено, PLL производит тактовую частоту до 32 МГц.
В отличие от режима HSPLL, PLL контролируется с помощью программного обеспечения. Контрольный бит PLLEN (OSCTUNE <6>) используется для включения или выключения его работы.
PLL доступен, когда устройство настроено на использование внутреннего блока
генератора в качестве основного источника синхронизации (FOSC3: FOSC0 =
1001 или 1000). Кроме того, PLL будет работать, только если выбранный выходной
частота составляет либо 4 МГц, либо 8 МГц (OSCCON <6: 4> = 111 или 110). Если оба этих условия не выполняются, PLL отключается.
Контрольный бит PLLEN функционирует только в тех режимах внутреннего генератора, где имеется PLL. Во всех других режимах он вынужден «0» и фактически недоступен
Другими словами  ваши "   OSC = HSPLL ; HS oscillator, PLL enabled (Clock Frequency=4 x FOSC1)" не работают при "IESO = ON ; Oscillator Switchover mode enabled" - включенном внутреннем генераторе. А PLL и частоту кварца объявляют в программе.
Я еще не работал с умножением - просто небыло нужды. Да и вообще все китайцы делают.
Если серьезно без документации на контроллер не обойтись. У меня с языком большая проблема, но есть гугл-перевод.

Добавлено (12.11.2018, 00:55)
---------------------------------------------
Еще - вы мучились с DHT11, так там очень жесткие условия обработки сигнала 50 мкСек на обработку длительности сигнала его сравнения и записи значения (т.е. определить 1 или 0). При частоте 4 мГц длительностьтактирования = 1 мкСек. Учитывая не синхронность частот датчика и ПИКа, то задержки в 1 мкСек при приеме 40 импульсов приведут к 40 мкСек и будет ошибка считывания. Поэтому нужна более высокая частота ПИКа.

Aleksey_174 Дата: Пн, 12.11.2018, 05:36  |                                                                                                                Сообщение # 58
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 52
Репутация: 8   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

anatol, Попробывал поиграться с OSCTUNE, пока не получается, а можно ли настроить Proteus, чтоб он показывал так, как будет вести контроллер в железе?
ivan_fd Дата: Пн, 12.11.2018, 10:33  |                                                                                                                Сообщение # 59
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1009
Репутация: 82   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Aleksey_174
Вам нужно определится, конкретно, на какой частоте будет работать Ваш контроллер.
1. Если Вы будете использовать внешний кварц без умножителя, то ставите
Код
Config_Start
  OSC = HS    ;HS oscillator

2. Если используете умножитель, то кварц ставится до 10МГц, что с умножением будет до 40МГц.
Код
Config_Start
  OSC = HSPLL    ;HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1)


3. Если генератор внутренний и умножитель не нужен, то ставим:
Код
Config_Start
  OSC = INTIO67    ;Internal oscillator block, port function on RA6 and RA7
И настраиваем два регистра OSCCON и OSCTUNE.
В OSCCON - биты 4-6, настраиваем частоту внутреннего генератора. До 8МГц.!
В OSCTUNE - ставим нули.!

Если нужен умножитель, то ставим:
Код
Config_Start
  OSC = INTIO67    ;Internal oscillator block, port function on RA6 and RA7
В OSCTUNE -  ставим бит 6
Цитата
bit 6 PLLEN: Frequency Multiplier PLL for INTOSC Enable bit(1)
1 = PLL enabled for INTOSC (4 MHz and 8 MHz only)
0 = PLL disabled

И настраиваем OSCCON.

Цитата Aleksey_174 ()
можно ли настроить Proteus, чтоб он показывал так, как будет вести контроллер в железе?

Можно.
В Протоне прописываем Xtal = ..... Пишем ту частоту на которой будет работать контроллер.  Например, если с умножителем и кварц стоит 8МГц, то пишем Xtal = 32, а в протеусе пишем реально какой кварц стоит, то есть 8МГц.


Меня все время преследуют умные мысли...но я быстрее!!!
Aleksey_174 Дата: Пн, 12.11.2018, 17:37  |                                                                                                                Сообщение # 60
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 52
Репутация: 8   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

На фиг  sad мучился мучился, контроллер раз 30 прошивал, добивался только, что еще медленнее было.
Поставил внешний и ни каких проблем
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Библиотека для Proton IDE (Создание библиотек)
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Поиск: