Перейти к содержанию

Долгая Смена Индикации На Индикаторе


Zombie47

Рекомендуемые сообщения

Реальная пауза моргания где то 1 секунда.

trisa = %01110011
trisb = %00000000
dig1 var porta.3
dig2 var porta.2
dig3 var porta.7
dig1 = 0  
dig2 = 0
dig3 = 0

Portb = $16

vivod:  
dig1 = 1
pause 10
dig1 = 0
pause 10
dig2 = 1
pause 10
dig2 = 0
pause 10
dig3 = 1
pause 10
dig3 = 0
pause 10
goto vivod
end

Если убрать Pause 10 везде то горят все три цифры на семисегментном индикаторе все нормально но вот другая программа:

'6-e RB0
'7-c RB1
'8-dp RB2
'9-d RB3
'10-f RB4
'11-a RB5
'12-g RB6
'13-b RB7

' RA3 dig1
' RA2 dig2
' RA7 dig3

' RA6 вход с датчика сигнал

' 0- $44, 1- $7D, $16, $15, $2D, $85, $84, $5D, $04, $05
Define adc_bits 8
Define ADC_CLOCK 3
Define ADC_SAMPLEUS 50
tempval var byte
LED var portb
dig1 var porta.3
dig2 var porta.2
dig3 var porta.7
dp var portb.2
Temp VAR word
i var byte 'номер горящего индикатора от 0 до 2
n var byte '
warning var porta.1

dig1 = 0 '1 это плюс на RA3 dig1
dig2 = 0 '1 это плюс на RA2 dig2
dig3 = 0 '1 это плюс на RA7 dig3

Init:
trisa = %01110011 'RA7 вых,RA6 вх,RA5 вх,RA4 вх,RA3 вых,RA2 вых,RA1 вх,RA0 вх
trisb = %00000000 'все выходы
ADCON1=%00000010 'RA1 сделал аналогвым входом

vivod:   'вывод значения Temp на экран
adcin 0, tempval
for i = 0 to 2
n = temp dig i
dig1 = 0 '1 это плюс на RA3 dig1
dig2 = 0 '1 это плюс на RA2 dig2
dig3 = 0 '1 это плюс на RA7 dig3
gosub Convrt
if i = 0 then
dig3 = 1
endif
if i = 1 then
dig2 = 1
endif
if i = 2 then
dig1 = 1
endif
'Temp = 168/10
Temp = (6 * tempval - 156)/10
next i
goto vivod
Convrt:
lookup n, [$44,$7D,$16,$15,$2D,$85,$84,$5D,$04,$05], Led
return
end

тут убрана пауза но меняются долго, по пол секунды. Где я накосячил? Первый раз просто прогу пишу =)

Изменено пользователем IMXO
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

это вообще на каком, на паскале?

вставляете код пользуйтесь кнопкой <> панели инструментов, на первый раз пост поправил....

'Temp = 168/10

Temp = (6 * tempval - 156)/10

Где я накосячил? Первый раз просто прогу пишу =)

наверно здесь , вы бы еще синусы с косинусами начали вычислять...:)
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Извиняюсь не указал. конфиг биты вот такие стоят __config _INTRC_IO & _WDT_ON & _PWRTE_ON & _LVP_OFF & _CP_OFF & _MCLR_OFF

вроде как и положено врублен внутренний генератор командой _INTRC_IO

Контроллер писал в описании 16f819

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Когда кодом вставляю то иероглифы вместо русского

byte 'íîìåð ãîðÿùåãî èíäèêàòîðà îò 0 äî 2
n var byte '

хотя если текст с форума копирнуть то все ок.

ADCON1=%00000010 'RA1 сделал аналогвым входом

наверно здесь , вы бы еще синусы с косинусами начали вычислять

я новичок! я не знаю что да как, как правильно сделать? почему так плохо?

Ссылка на комментарий
Поделиться на другие сайты

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Вот по такой программе реальная скорость задержки не 100мсек а 13.1 сек

Define  OSC	 4
trisa = %01110011 'RA7 âûõ,RA6 âõ,RA5 âõ,RA4 âõ,RA3 âûõ,RA2 âûõ,RA1 âõ,RA0 âõ
trisb = %00000000 'âñå âûõîäû
LED var portb
dig1 var porta.3
dig2 var porta.2
dig3 var porta.7
dp var portb.2
Temp VAR word
i var byte 'êîëè÷åñòâî ãîðÿùèõ èíäèêàòîðîâ îò 0 äî 2
n var byte
warning var porta.1
dig1 = 0 '1 ýòî ïëþñ íà RA3 dig1
dig2 = 0 '1 ýòî ïëþñ íà RA2 dig2
dig3 = 0 '1 ýòî ïëþñ íà RA7 dig3

Portb = $16
vivod:   'âûâîä çíà÷åíèÿ Temp íà ýêðàí
pause 100
dig1 = 1
pause 100
dig1 = 0
pause 100
dig2 = 1
pause 100
dig2 = 0
pause 100
dig3 = 1
pause 100
dig3 = 0
goto vivod
end

Ссылка на комментарий
Поделиться на другие сайты

Извиняюсь не указал. конфиг биты вот такие стоят __config _INTRC_IO & _WDT_ON & _PWRTE_ON & _LVP_OFF & _CP_OFF & _MCLR_OFF

вроде как и положено врублен внутренний генератор командой _INTRC_IO

Контроллер писал в описании 16f819

хороший МК для начинающих :crazy:

1.собаку выключить...

2.заглянуть в даташит ознакомится с разделом 4.5. и узнать что такое OSCTUNE и OSCCON..., потом в таблицу 12-4 и выяснить их состояние по дефолту... и сделать выводы о частоте гены

3. енто: Temp = (6 * tempval - 156)/10

выполняется всего лишь за 420 маш.циклов

Ссылка на комментарий
Поделиться на другие сайты

Разобрался дописал в программу OSCCON = %01100100

и все заработало как надо.

Но тупо нашел эту величину на форуме.

3. енто: Temp = (6 * tempval - 156)/10

выполняется всего лишь за 420 маш.цикло

а это как посчитали? и сколько это по времени?=)

Изменено пользователем Zombie47
Ссылка на комментарий
Поделиться на другие сайты

да да я уже понял просто не было понимания регистров изза того что написано IRCF2:IRCF0 и написано 111 - 8 mhz ,110 - 4mhz

думаю что это за регистр в регистре и куда эти биты вводить. думал надо как то ввести сначала OSCCON = %01100100 а потом еще как то IRCF2:IRCF0 = %110

=))) а оказалось это IRCF2:IRCF0 означает просто с IRCF2 по IRCF0.

тоесть нет чтобы каждый бит был расписан так где то один бит расписан а где то три вот и путаница в моей голове =)

Ссылка на комментарий
Поделиться на другие сайты

3. енто: Temp = (6 * tempval - 156)/10

выполняется всего лишь за 420 маш.цикло

а это как посчитали? и сколько это по времени?=)

откомпилировал хайтеком и прогнал в протезе... хотя здается мне с вашим компилятором результат будет хуже...

1маш.цикл=4 тактам генератора , для тактовой частоты 4МГц один цикл равен 1мкс , те только эта строка выполняется за 0,42мс ,а придуманная вам процедура выполняется около 2мс , и это много...

Ссылка на комментарий
Поделиться на другие сайты

подобный подход к написанию кода(совмещение расчета данных и вывод на экран в одной процедуре) обычно приводит к глюкам в работе устройства при увеличении кода...

ЗЫ читаем правила форума П.2.9 , за это наказывают...;)

Ссылка на комментарий
Поделиться на другие сайты

А теперь возникла другая проблема, с переменной не правильно считает формулу. tempval - значение АЦП

Если пишу в программе вот так:

Temp = tempval

то выдает на экран 56

Если пишу вот так

Temp = ((678 * 56)-(38071))/1000

то выдает на экран 000 (все верно так как получается )

но если пишу вот так

Temp = ((678 * tempval)-(38071))/1000

то выдает 65

язык picbasicpro

Ссылка на комментарий
Поделиться на другие сайты

ну детский сад какой-то...

скажите вам размерность переменной word о чем нибудь говорит?

в первом случае компилятор вычисляет результат выражения и подставляет значение в исполнительный код в виде константы , которая равна -0,103 и при привидении к word равна 0

во втором случае все действия сразу приводятся к word :

первым выполняется умножение, результат = 37968, приведение к word = 37968

вторым вычитание, результат = -103, приведение к word = 65433

третьим деление, результат = 65,433, приведение к word = 65

Ссылка на комментарий
Поделиться на другие сайты

А что делать с такими числами которые к примеру больше 65535?

ну например у меня при tempval = 151 при умножении получается число больше 65535 и естествено хрень в расчетах. Как правильно поступают в таких случаях?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...