Jump to content

alder
 Share

Recommended Posts

Да не вопрос. Только я думаю надо ветку отдельную создать. Завтра, ну т.е уже сегодня :) залью всю инфу, программы на какой-нибудь файлообменник, создам тему и выложу ссылки. Жди.

Будьте проще и люди к вам потянутся.

Link to comment
Share on other sites

Выгодные LED-драйверы MOSO для индустриальных приложений

Компэл представляет выгодные светодиодные драйверы MOSO для промышленных решений с высоким классом защиты от внешних воздействующих факторов, хорошей устойчивостью к импульсным помехам и высокой надежностью. В ряде серий реализована возможность дистанционного контроля, кроме того, отдельные версии драйверов могут программироваться на работу в автономном режиме по заранее заданному сценарию. Рассмотрим подробнее их характеристики. 

Читать статью>>

  • 2 months later...

ER10450 – литий-тионилхлоридная батарейка FANSO EVE Energy формата ААА
Компания FANSO EVE Energy расширила номенклатуру продукции, разработав новый химический источник тока (ХИТ) – батарейку литий-тионилхлоридной электрохимической системы (Li-SOCl2; номинальное напряжение 3,6 В) типоразмера ААА – ER10450. Батарейка имеет бобинную конструкцию (тип Energy) и предназначена для долговременной работы при малых токах.
Батарейка может применяться в приборах учета ресурсов, в различных датчиках, устройствах IoT и в других приборах и устройствах, в которых требуется компактный ХИТ соответствующей емкости.
Подробнее >>

Доброй ночи всем.

На изучение ассемблера не хватает свободного времени, забросил давно. Осваиваю теперь потихоньку PicBasic :)

Поигрался со светодиодами, огоньками бегущими, и прочим... Вроде работает. Начал с pic16f84, как это не банально...

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

Нужно измерить длительность положительного имульса в интервале 10...1000мс, как это реализовать на этом языке?

Pulsin работает как то криво. После "переполнения" назначенной ей переменной, даже если импульс не появился, программа выполняется дальше, и в это время на поступление импульса никак не реагирует. Как убрать это "мертвое время"? И еще, выходит, что при кварце на 4мГц, максимальное время измерения ограничено 0,65сек (65535 максимальное значение переменной) Как это обойти программно?

Link to comment
Share on other sites

Новое семейство HRP/N3 от MEAN WELL – ИП с 350% перегрузкой для промышленных приложений

В промышленных устройствах и установках с электроприводом на двигателях постоянного тока в момент пуска требуется обеспечить повышенный ток. Для решения этой задачи MEAN WELL предлагает вместо ИП с повышенной избыточной мощностью, более оптимальное решение - источник питания с необходимой перегрузочной способностью семейства HRP/N3. 

Новое семейство, представленное в Компэл, экономичнее и расширяет уже существующее HRP/N в увеличении кратности перегрузки. Подробнее>>

...И еще, выходит, что при кварце на 4мГц, максимальное время измерения ограничено 0,65сек (65535 максимальное значение переменной) Как это обойти программно?

1. Поскольку для счета используется скорее всего TMR0, а он - 8битный (т.е. дает значение только 0...255), то в программу уже введена какая-то переменная для второго байта. Значит, разбираться в коде и аналогично вводить переменные для 3-го, 4-го и т.д. байтов...

2. Можно выставить другой предделитель для TMR0. Правда, точность ухудшится.

3. Просто использовать кварц на меньшую частоту. Значение переменной останется то же (65535), но замедлится выполнение программы, а время измерения, наоборот, увеличится пропорционально снижению частоты.

Но как это делается в вашем басике, я не знаю. На асме это занимает от двух до 5 строчек кода.

Edited by AlenB
Link to comment
Share on other sites

Поскольку для счета используется скорее всего TMR0, а он - 8битный (т.е. дает значение только 0...255), то в программу уже введена какая-то переменная для второго байта. Значит, разбираться в коде и аналогично вводить переменные для 3-го, 4-го и т.д. байтов...

На асме я это дело представляю, а басик совсем голову поломал... Как то мешать два языка, в которых мало понимаю, не хочется.

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

В PicBasicPro нравится что можно без заморочек выводить на лсд дисплей все что нужно, да и синтаксис простой и понятный

Просто использовать кварц на меньшую частоту. Значение переменной останется то же (65535), но замедлится выполнение программы, а время измерения, наоборот, увеличится пропорционально снижению частоты.

Ну это уже совсем крайние меры.

Edited by 25Watt
Link to comment
Share on other sites

На асме я это дело представляю
Ну и делайте тогда на АСМе, зачем делать на том, что Вы плохо знаете ?

А вообще, задача решается просто. Настраиваем таймер на 1 мс. и перезапускаем постоянно его. Т.е. делаем тики в 1 мс. и смотрим за состоянием входа. Добавляем 1 переменную размером 2 байта и когда на входе лог. 1, считаем ей кол-во тиков. Всё просто.

Link to comment
Share on other sites

Что же, на нем только мигалки светодиодные писать что ли

Да, именно так (и да простят меня модераторы)

Вот (http://www.barrymichels.com/ide/) человек делал контроллер для винта. После переписывания кода с басика на труЪ-асм быстродействие увеличилось в 40раз.

Link to comment
Share on other sites

Ну и делайте тогда на АСМе, зачем делать на том, что Вы плохо знаете ?

Ну ассемблер я тоже только поверхностно знаю. Уж больно много он времени отнимает...

А вообще, задача решается просто. Настраиваем таймер на 1 мс. и перезапускаем постоянно его. Т.е. делаем тики в 1 мс. и смотрим за состоянием входа. Добавляем 1 переменную размером 2 байта и когда на входе лог. 1, считаем ей кол-во тиков. Всё просто.

Кажется примерно алгоритм понял.

PIC16F628A. И тебе советую заменить 84-ый на него

Да я и сам понял давно. Но сейчас под рукой только 84й. 628х заказал, но что-то долго едут...

Думаю принцип понятен, перведёшь на своего Барсика

Спасибо конечно, но вот в Си я даже основ не знаю. Пол часа изучал ваш код, так и не понял ничего :)

Пошел дальше ломать моск...

Edited by 25Watt
Link to comment
Share on other sites

Вот как то так получается

time var word				  'определение переменных
portb.0 = 1					'PORTB0 как вход
lcdout $FE, 1, "test"		  'вывод на дисплей
pause 1000					 'пауза 1с
lcdout $FE, 1, "0"			 'вывод на дисплей
start:						 'метка
if portb.0 = 0 then start	  'если на входе лог. 0, то переход на метку
pause 1						'пауза 1 мс
time = time + 1				'инкремент переменной
if time > 1000 then goto error 'если больше 1000 то переход на метку
if portb.0 = 1 then start	  'если на входе лог. 1, то переход на метку
lcdout $FE, 1, #time		   'значение переменной на дисплей
error:						 'метка
time = 0					   'очищаем переменную
goto start					 'в начало

Точность низкая получается, но приемлемо для моих целей.

Теперь нужно измерить количество импульсов (до 10) и длительность каждого занести в память :)

Edited by 25Watt
Link to comment
Share on other sites

  • 1 month later...

Добрый день или вечер всем. Помогите с вопросом можно ли в пикбейсике перевести трехбайтное число в 10-чный формат (8 байт). Или как это сделать проще?

Link to comment
Share on other sites

Здравствуйте, у меня возникла проблема , при написании прошивки, команду

pause 500 программа признаёт синтаксической ошибкой, есть ли замена этой команде, работаю с программой picsimulatoride, скачивал PicBasicPro_2.43 вобще не запускается.

Понимаю, мой вопрос может показаться глупым, но прошу меня простить, я в этом деле новичёк.

Link to comment
Share on other sites

   Найдите в сети прграмму PicBasik Plus она же (PBP_Editor), там все нормально реализовано, даже команды ASM воспринимает и компилятор рабочий . Справка вся расписана примерами. 

Edited by skrvad
Link to comment
Share on other sites

  • 7 months later...

всем привет, может быть вопрос глупый, ноо...

Суть вопроса:

Есть переменная со значением, например:

a var byte

a=6

Как мне заставить эту ДЕСЯТИЧНУЮ шестёрку вывестись на порт В например. Тоесть не будет ли ошибкой если я напишу:

a var byte

a=6

portB = a

Или же надо как-то иначе?

Link to comment
Share on other sites

  • 2 months later...

Всем доброго времени суток, Расскажите, как пользоваться АЦП на Бэйсике?

Читал книгу Чака Хелибайка, он пишет что там нужно мерять напряжение с помощью "плечей" - 2-х резисторов - один постоянный другой переменный, в других местах видел где-то, что можно просто переменный резистор подцепить.

Как правильнее сделать? :ph34r:

Link to comment
Share on other sites

  • 3 weeks later...

Как правильнее сделать? :ph34r:

По закону Ома будет правильнее. АЦП анализирует напряжение на входе. Как будете подавать, такие данные и получите в цифровом формате.

Слава антисионистам Владимиру Путину и Владимиру Квачкову!

Link to comment
Share on other sites

  • 2 months later...
  • 4 months later...

добрый вечер!

хотеть узнать, как можно повторить программу main n-раз, допустим 5 раз

Symbol LED = 0

TRISB = %11111110

main:

High LED

Pause 500

Low LED

Pause 500

goto main

END

к примеру, я хочу заставить диод мигать по пол секунды,пять раз, затем он потухнет на 5 сек, потом снова начнет по пол секунды мигать 5 раз

как так сделать?

Link to comment
Share on other sites

Вот, по идее должно работать так: 5 раз моргнули с перерывом 0,5 секунды, подождали 5 секунд.

Symbol	LED = 0	

TRISB = %11111110	

PORTB.0 = 0 'делаем 0 на выводе светодиода, не обязательно но оооочень желательно

a var byte 'переменная - счётчик

main:
a=0	
for a = 1 to 5 'начинаем считать 5 раз
High	LED	

Pause	500

Low	LED	


Pause	500	

next a   '  прибавляем к счётчику единицу и повторяем снова

pause 5000 ' когда а = 5 - делаем паузу 5 секунд и повторяем всё заново

goto	main	
END	

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

  • Сообщения

    • Не надо тестер покупать. Есть много способов  измерения индуктивности первички ТВЗ. Например определяем индуктивное сопротивление первички на частоте сети 50Гц. Z=U/I например 220/0,05А = 4400ом.  L= 4400/314 = 14 Гн.  Если ток нечем  измерить,берём включаем  последовательно с первичкой сопротивление любое малоомное например 15ом. Включаем в сеть 220в и  измеряем на резисторе падение напряжения. Оно  будет тем больше - чем  меньше индуктивность  обмотки например получилось 0,5вольт.  0,5v/15ом = 0,033А  Дальше как выше формула. Напряжение 220 вольт разделить на ток. 220/0,033=6666ом / 314=21,2Гн .  А вот в ТОРе  ТВЗ индуктивность  гораздо  больше,потому что вся поверхность сердечника (вся длина магнитной линии) находиться внутри обмотки , обеспечивая максимальную индуктивность. Например у ТВЗ 80 тор, вся первичка имеет ток 1-1,3ма при 220 вольт,считаем  индуктивность В  Ш железе всего 1/3 магнитной лини покрыта обмоткой,  поэтому  индуктивность при том же сечении железа в 5-10 раз меньше,как меньше и мощность в 3-4 раза чем у ТОРа. Это  измеряем  ТВЗ  отдельно от выходного каскада УНЧ. А вот в  УНЧ уже  измеряем  резонансным методом индуктивность,подключив параллельно первичке  конденсатор ,что б образовался резонансный контур с частотою  чем меньше - тем больше индуктивность первички ТВЗ. Реально видим  частоту резонанса,измеряем например в однотакте уже с подмагничиванием рабочим током выходной лампы,видим работу зазора и можем подобрать величину зазора сердечника не  на глазок , а точно подобрать. И не больше и не меньше чем положено. Если на глазок или по формуле ставить зазор - мы обязательно теряем  ИНДУКТИВНОСТЬ. А нам важно получить её максимально  возможной,для  хорошего воспроизведения низких частот. И увеличение зазора и уменьшение от оптимального - ведёт к уменьшению  индуктивности первички.. Аудиодебилы наоборот уменьшают индуктивность,что б появилось много гармоник,звучание становиться насыщенным.Богатый БАС получается!   
    • Нашел ещё один косяк на плате , не пропаян контакт индуктивности ( на фото пометил)  в цепи затвора RD15 , пропаял , собрал в корпус , нагрузил антенной и в путь  , 15 минут работы , ток на фото , температура была 47-49 , потом подключил источник звука температура упала до 37-39 и так и осталась , оставлю пока пусть работает и буду смотреть , т.е. по факту сейчас ток 2,2 температура 40 градусов , вроде как все штатно . Еще вопросик , вот те регуляторы уровня для источников звука и микрофона , если микрофон не использую то его на минимум , тут ясно , а вот левый регулятор как оптимально выставить , я сейчас на источнике звук накрутил а тут на передатчике по серединке поставил , вообще его положение на работу передатчика сильно влияет ? я все переживаю что б не перегревать его   и какой по мощности резистор на 100 кОм на выход поставить ? 0,25 Вт пойдет 
    • Согласен, тут не поспоришь. Ну ок, научите меня пожалуйста... посоветуйте конкретный девайс для зарядки. Если бы ссылочку какую нибудь на него, где можно приобрести тогда был бы вдвойне признателен.
    • КПД ни при чём. Остальное верно.
    • Прикольно, надо будет попробовать. Какую пленку используете, которой маску накрываете? Использовал от фоторезиста, но она тянется когда карточкой маску разгоняешь.
  • Similar Content

×
×
  • Create New...