Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Помогите разобраться новичку (как правильно?)
Помогите разобраться новичку
Aleksey_174 Дата: Чт, 07.03.2019, 17:42  |                                                                                                                Сообщение # 286
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 85
Репутация: 15   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Есть две версии Dig:
Одна старая Variable = Dig Number
Она работает с переменными типа Byte,Word
Другая новая Variable = Dig Value,Number
Она работает с переменными типа Byte,Word,Dword

Переменную Float не поддерживают обе
Обычно в таком случае делают две переменных, одна идет целой частью, другая дробной
ivan_fd Дата: Пт, 08.03.2019, 13:18  |                                                                                                                Сообщение # 287
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1101
Репутация: 91   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Цитата VetallRX ()
Но вычитал что команда Dig подходит только для переменных типа word. (максимум могу показывать на индикаторах 65535). Мне нужно работать с переменными типа Float.


А как Вы собираетесь работать командой DIG с переменной типа Float?
Это же не целочисленная переменная, а с плавающей точкой.

А на счет DIG почитайте эту тему, с этого сообщения.
http://www.picbasic.ru/forum/5-1287-17436-16-1523032265


Меня все время преследуют умные мысли...но я быстрее!!!
VetallRX Дата: Вс, 31.03.2019, 20:55  |                                                                                                                Сообщение # 288
Группа: Пользователи
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 27.05.2018

Статус: Offline

Тут пытаюсь сделать двухканальный вольт-амперметр с гальванической развязкой каналов.
Ну и как все наступаю на те же грабли.
1. Если отключаю Declare All_Digital = On, то пропадает динамическая индикация в Протеусе (может сам протеус кривой?)
2. В PIC16F690 написано, что АЦП 10 бит, а как сделать что б значение переменой было максимум до 1023, (как я понял сейчас стоит  левое или правое выравнивание, по этому результат до 64000).
Если выбираю АЦП-8 бит, то нормально считает до 255.
Протеус 8.8 сп1
Прикрепления: 4780927.jpg(147.5 Kb) · VA.bas(4.5 Kb) · Probe.pdsprj.f630007068619009_(22.4 Kb)

Сообщение отредактировал VetallRX - Вс, 31.03.2019, 20:56
anatol Дата: Пн, 01.04.2019, 00:50  |                                                                                                                Сообщение # 289
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 601
Репутация: 23   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Я вставил в вашу программу две строчки
.......
TRISC = %00000000   'Сделать PORTС. выходами
ANSEL = %00000111  Включаем аналоговые входы 0,1,2
.......
ReadADC:
ADCON0 = %10000000  правое выравнивание

Далее по тексту. Declare All_Digital = On определяет назначение портов При работе с АЦП, в зависимости от TRIS они автоматом становятся аналоговыми и по ADIn выбирается номер пина порта.
"1" в старшем разряде ADCON0 определяет "выравнивание" результата, правое или левое.
Так как значение As Word может принимать значение до 65535 у вас и была хня.
см. 1023 = 11 1111 1111
As Word левое выравнивание 1023 = 1111 1111 1100 0000
As Word правое выравнивание 1023 = 0000 0011 1111 1111
Это нужно для разных методов обработки чисел
По умолчанию включено левое выравнивание т.е. ADCON0 = %00000000 (сбрасывается в ноль при старте) см. TABLE 9-3:SUMMARY OF A/D REGISTERS даташита на 16F690 строку ADCON0 и колонку  Value on all other Resets (значения после сброса.)

Сообщение отредактировал anatol - Пн, 01.04.2019, 01:46
Anatoliy1000 Дата: Ср, 22.05.2019, 06:47  |                                                                                                                Сообщение # 290
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 123
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Здравствуйте!
Подскажите как прочитать поступившие данные по УСАРту от SIM800l. Верней принимаю нормально, а как расшифровать пока не пойму. Так как МК 16F628 не читает текстовые переменные, приходится полученные данные переменной Ворд растолковывать по фрагментам.

Сим получает СМС с моего телефона и отправляет на МК, МК отправляет в Терминал (посмотреть что получилось).

Код в МК
 
Как "нормально" обработать полученные данные? Возможно или только сменой МК?


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
ivan_fd Дата: Ср, 22.05.2019, 09:52  |                                                                                                                Сообщение # 291
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1101
Репутация: 91   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Контроллер читает то, что ему пришло. Тут от контроллера не зависит. 
Чем Вы смотрите, то что получается?
Если в терминале Вы видите, что текст пришел нормально "123 ОК", то так же и в контроллере, при условии, что правильно приняли, должно быть.


Меня все время преследуют умные мысли...но я быстрее!!!
ЯНДЕКС Дата: 22.05.2019
Anatoliy1000 Дата: Ср, 22.05.2019, 13:08  |                                                                                                                Сообщение # 292
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 123
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Это понятно, но как проверить то что пришло. Грубо говоря как понять что СМС с нужным сообщением от нужного номера. МК не работает с текстом. Кто-нибудь ранее это делал?

Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
ivan_fd Дата: Ср, 22.05.2019, 15:27  |                                                                                                                Сообщение # 293
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1101
Репутация: 91   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

При чем здесь текст. Сообщение идет байтами. Отлавливайте байты и переводите в текст. Цифра 0, например, придет как 48 - в десятичной, или 0x30 в шестнадцатеричной системе.

Меня все время преследуют умные мысли...но я быстрее!!!
Aleksey_174 Дата: Чт, 23.05.2019, 17:06  |                                                                                                                Сообщение # 294
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 85
Репутация: 15   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Я как-то баловался SIM800l, но времени так и не хватило доделать
Чтобы с ним работать читать писать СМС и обрабатывать данные нужно много памяти
На 628 может и только и получится принять отправить смс с какими нибудь цифрами
У SIM800l много настроек и некоторые из них нужно вводить перед работой, например чтоб СМС шли в одном формате в инете есть много информации
Вот готовый проект  похожий по принципу на SIM800l который находится на этом сайте
Anatoliy1000 Дата: Пт, 24.01.2020, 05:46  |                                                                                                                Сообщение # 295
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 123
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Подскажите почему не работает реверсирование?
BUF = BUF Rev 8   'реверсировать байт
Прикрепления: TM1637_I2C.rar(62.9 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
ivan_fd Дата: Пт, 24.01.2020, 23:21  |                                                                                                                Сообщение # 296
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1101
Репутация: 91   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Я не пойму, что Вам нужно сделать. В моем компиляторе нету команды REV, ругается на неё.

А, теперь понял. Да, как Вам и написали @ работает.


Меня все время преследуют умные мысли...но я быстрее!!!
anatol Дата: Сб, 25.01.2020, 00:23  |                                                                                                                Сообщение # 297
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 601
Репутация: 23   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

А так
BUF = BUF @ 8   'реверсировать байт
dimvad Дата: Сб, 25.01.2020, 17:44  |                                                                                                                Сообщение # 298
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 83
Репутация: 15   ±
Замечания:   ±
На сайте с 20.07.2012

Статус: Offline

Да в этом примере руками проще среверсировать. Протон больше чем 3527 эту команду не делает.
Прикрепления: 9685198.rar(61.3 Kb)
Anatoliy1000 Дата: Ср, 29.01.2020, 13:33  |                                                                                                                Сообщение # 299
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 123
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Подскажите почему:
1. Секундомер, дальше 300 с чем-то обнуляется.
2. От кудо взято значение максимальной яркости
BusOut $51               '4/16
3. Почему в Протеусе выдает ошибку АЦП.
и вообще как настроить секундомер, что бы показывало сначала с сотыми секундами, а как пройдет 99 секунд, показывало без сотых...
Извините но мозг плавится уже.
Прикрепления: 12F675_.rar(89.0 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
anatol Дата: Ср, 29.01.2020, 15:08  |                                                                                                                Сообщение # 300
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 601
Репутация: 23   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Даже смотреть не буду. Тебе два человека ответили на предыдущий вопрос, а в ответ тишина.
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Помогите разобраться новичку (как правильно?)
Поиск: