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

crazz

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

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

Русский до мозга костей.

http://forum.cxem.ne...opic=114014&hl= <-------Совместный проект Demonit END Korsaj

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

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

Ну оно-то по логике вещей так и надо... но... у стабилитронов не идеальная ВАХ, напряжение стабилизации все же зависит от тока, 5-вольтовый к примеру начнет уже проводить микроамперы при 2-х вольтах а при 1А на нем уже будет 7 вольт, а то и больше. Можно конечно взять типа Д815 стабилитрон, для которого 5В это рабочее напряжение на токе в 1А но на практике вылезает другой ньюанс... разброс напряжений стабилизации. Да, стабилитроны все разные, абсолютно все. Не подбирая ты не найдешь стабилитрон ровно на 5 вольт. но тут нас поджидает и третья проблема - у стабилитронов имеется ТКН - проще говоря, напряжение стабилизации зависит от температуры. Принимая во внимание все факторы, нельзя никак гарантировать что ЛЮБОЙ поставленный стабилитрон будет ВСЕГДА обеспечивать необходимые характеристики в схеме с требуемой точностью.

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

есть конечно другой вариант защиты входов - обычный маломощный транзистор, по схеме с ОЭ и высокоомный резистор на входе(1МОм например), такой что любое из заданных напряжений по входу не выведет его из строя. При этом надо только обеспечить защиту от отрицательного напряжения на входе вполне заурядным диодом. Плюс такого подхода - схему можно рассчитать на срабатывание практически при любом удобном напряжении. это в качестве альтернативного варианта, может где в другой схеме понадобится.

Учение - изучение правил. Опыт - изучение исключений.

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

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

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

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

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

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

Спасибо думаю когда то и пригодится такое решение, я если честно последнее время все реже стал заниматься какими то разработками, времени не хватает да и невеста молодая просит на себя его тратить а не на ( Гребаные твои железяки, я живой человек и ты должен тратить своё время на меня на нашу будующую семью ) ну это один из примеров того что я слышу пару раз в неделю :lol2:

Русский до мозга костей.

http://forum.cxem.ne...opic=114014&hl= <-------Совместный проект Demonit END Korsaj

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

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

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

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

И снова приветствую всех!!! В общем подумал над своим поведением и решил что если и учиться что то писать то нужно начинать это делать нормально а не в игрушечных программах. Мне помогает пользователь OXFORD за что не вероятное ему спасибо , Решили что писать будем на В микро паскаль фор пик, учил он меня вчера что такое процедура и как она работает, потом что такое функция и как она работает, потом функция с вложенной процедурой, за один час мой мозг вскипел так как не вскипал ещё со школьных времён. Пока мой учитель не вышел на связь хотел бы спросить, и попросить пример кода, попробую описать как смогу , не пинайте сильно я только учусь )))

подал питание на мк

задержка включения 150 мс

включение светодиода порт а бит 0

задержка 100 мс

включение светодиода порт а бит 1

задержка 100 мс

включение светодиода порт а бит 2

задержка 500 мс

задержка 500 мс

задержка 500 мс

end.

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

С уважение Георгий

Русский до мозга костей.

http://forum.cxem.ne...opic=114014&hl= <-------Совместный проект Demonit END Korsaj

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

Так не пойдет. Надо сперва научится думать образами. Собственно, вы же себе и ответили. у вас УЖЕ написана программа, осталось её тупо перевести на машинный язык. не знаете что такое "задержка 100 мс"? гуглится для вашего языка и среды в которой работаете... "включение светодиода порт а бит 0" сводится к задаче установки в порту нужного логического состояния соответствующего включенному светодиоду - тоже аналогично гуглится. Ну а что такое ваш "end" можно только гадать... ведь программа в контроллере НИКОГДА не заканчивается и то что вы написали end вовсе не означает что контроллер ничего делать не будет - управление уйдет куда-то и он что-то будет судорожно выполнять. Чтобы этого небыло, если вам дальше ничего не нужно выполнять - надо зациклить контролер чтобы он выполнял бесконечный цикл, проще всего это реализовать командой перехода на самого себя, или на паскале если командой While true с пустым телом цикла.

Учение - изучение правил. Опыт - изучение исключений.

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

Что такое задержка и какую она функцию выполняет я знаю, как считается задержка в миллисекундах или секундах тоже знаю, я просто не знаю как начать писать то есть с чего начинается программа, как приблизительно выглядит код, Я понимаю что мне нужно найти но как правильно сформулировать вопрос для поиска в яндексе или гугле не могу сообразить, пересмотрел кучу примеров но там асемблер или С языки и команды там другие и мне это всё не совсем понятно пока мой препод не вышел на связь и толком объяснить и разжевать что есть что не кому, я читал и про функции и процедуры но ни чего не понимал что из чего и как складывается, Вчера вечером мне был показан пример каждый пункт примера был рассказан и объяснён а сегодня я уже сам могу написать сложнейшую процедуру с массой вложенных функций! Мне бы только увидеть и понять начало кода что есть что и за что отвечает как работает ))) Надеюсь сегодня продолжу обучение, Очень хочется обладать необходимыми знаниями и развивать их))))

Русский до мозга костей.

http://forum.cxem.ne...opic=114014&hl= <-------Совместный проект Demonit END Korsaj

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

а сегодня я уже сам могу написать сложнейшую процедуру с массой вложенных функций!
это все замечательно только толку от этого знания в программировании МК ноль целых ноль десятых.... почему это так, вы можете узнать в даташите на свой горячо любимый 12ф629 раздел 2.3.2

что как работает тоже надо читать в даташите.... а о том как это записывается в хелпе к используемому компилятору/языку....

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

Процедуры и функции - понятия абстрактные. Необходимо научится прежде всего оперировать этими абстрактными понятиями независимо от их реализации в конкретном языке программирования. Боюсь, начав изучать к примеру функциональный язык программирования вы просто сойдете с ума. А на самом деле, его суть еще проще чем у привычных процедурных. К примеру, программы к ПЛИС пишут исключительно на функциональных языках!

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

Да, и осмотри каталог со средой программирования, там просто обязаны быть примеры программ уровня "Hello world".

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

Учение - изучение правил. Опыт - изучение исключений.

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

1) В начале программы записывается какой контроллер Вы собираетесь применять. 2) Производите конфигурацию контроллера .....ну например....wdt_off , pwrte_on , mclre_on , intrc_osc_noclkout..

3) Производите настройку портов.....ну например...trisio = %001000.

4) Делаете Нужные Вам функции.... Например включает Подтягивающие резисторы , или ещё что нибудь.

Короче там целая коллекция изучений для Вас.... Просто так нахрапом не возьмёте., Надо знать не только как правильно писать синтаксис в Компилятора....но и работу самого контроллера.

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

  • 1 месяц спустя...

Нужна помощь, с PIC16F630. А именно как задействовать внутренний RC генератор в Timer1 вместе с внешним кварцом, чтоб в режиме sleep, когда не работает внешний кварц - Timer1 тактировал внутренний RC генератор?

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

А именно как задействовать внутренний RC генератор в Timer1 вместе с внешним кварцом, чтоб в режиме sleep, когда не работает внешний кварц - Timer1 тактировал внутренний RC генератор?

Думаю, никак. В режиме sleep TMR1 может тактироваться внешним кварцем 32 кГц, при условии, что в конфигурационных битах установлен "INTOSC without CLKOUT", то есть МК тактируется от внутреннего генератора.

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

Думаю, никак. В режиме sleep TMR1 может тактироваться внешним кварцем 32 кГц, при условии, что в конфигурационных битах установлен "INTOSC without CLKOUT".

Есть ещё вопросы....

_По поводу портов <RA>, там есть слабая подтяжка, которая врубается при переключении портов на <вход> и я так понял, что на всех портах <RA> будет читаться, при повисших в воздухе концах, лог. единица (+5V)?

__Да и с типом самих портов не всё понятно. Как формируются выходные сигналы, ведь полевиков нижнего и верхнего или только нижнего (с открытым стоком/коллектором) плеча (как например в PIC16F628A) - не наблюдается?

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

_По поводу портов <RA>, там есть слабая подтяжка, которая врубается при переключении портов на <вход> и я так понял, что на всех портах <RA> будет читаться, при повисших в воздухе концах, лог. единица (+5V)?

__Да и с типом самих портов не всё понятно. Как формируются выходные сигналы, ведь полевиков нижнего и верхнего или только нижнего (с открытым стоком/коллектором) плеча (как например в PIC16F628A) - не наблюдается?

Да будет читаться 1, но подтягивающие резисторы можно отключать (все - установив в 1 бит RAPU OPTION_REG и по отдельности с помощью регистра WPUA). А выходы там, думается, такие же, как у всей средней серии (с двумя мосфетами), кроме RA3 - только вход.

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

'DIOGEN_B'

Вот ещё:

___Стоит прерывание по возрастающему фронту RA2, порт висит в воздухе пока на него, через резистор, подаётся +5V. Какой номинал резистора лучше выбрать? В Протеусе стоит 51k и порт не реагирует!

Та же проблема и с остальными портами RA, когда в IOCA ставишь прерывание по из изменению отдельно от RA2.

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

Контроллеру по барабану что за резистор стоит у него на входе. Вход реагирует исключительно на напряжение, переключаясь с 1 на 0 около порогового с учетом гистерезиса. Если порт никак не реагирует - значит напряжение на его входе не достигает порога переключения по каким-либо причинам. Почему это происходит - проблемы уже аналоговой схемотехники или банально забыли переключить порт на ввод и он работает на выход пересиливая любой входной сигнал.

Учение - изучение правил. Опыт - изучение исключений.

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

Контроллеру по барабану что за резистор стоит у него на входе. Вход реагирует исключительно на напряжение, переключаясь с 1 на 0 около порогового с учетом гистерезиса. Если порт никак не реагирует - значит напряжение на его входе не достигает порога переключения по каким-либо причинам.

Спасибо, кварц наверное битый(Б/У он у меня).

А насчёт внутреннего генератора, моё сообщение чуть выше #1912, не подскажешь? Вообще как его настроить?

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

Не, не подскажу. Скорей всего на таймер заведена только основная тактовая частота, и тактироваться от другого источника он не может. Единственное что... можно попробовать переключать системную частоту на встроенный генератор перед сном, тогда можно и на таймер её подать.

Учение - изучение правил. Опыт - изучение исключений.

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

'Alexeyslav'

Изменил немного программу и PIC16F630 стал обрабатывать прерывание по изменению портов <RA>, но упорно не хочет "в прерывание" по возрастанию от <RA2>! В Proteus-е та же хрень, с резистором не появляется высокий уровень на <RA2> - только без резистора!!! Я не въезжаю почему!!! А подключать к реальному ПИКу +5V без ограничителя тока сцыкотно...

Вот часть кода инициализации контроллера, может разберёшься...

;=======================================================================================================================================================

; Вектор сброса контроллера

;=======================================================================================================================================================

org 000

goto START

org 004

goto INTERRUPT

;=======================================================================================================================================================

START ;Начало всех начал

;=======================================================================================================================================================

;****************0 банк памяти

bcf STATUS,RP0

;=======================================================================================================================================================

; Выставляем изначальные логические уровнеи (тобиш +/-) на портах ввода/вывода

;=======================================================================================================================================================

movlw b'00000000' ;устанавливаем начальный сигнал на портах <A>

movwf PORTA ;команды <0-5>

movlw b'00000000' ;устанавливаем (-) нет сигнала на всех портах <C>

movwf PORTC ;команды <0-5>

;=======================================================================================================================================================

; Отключение компаратора

;=======================================================================================================================================================

movlw b'00000111' ;установка портов <C> как ВЫХОДЫ

movwf CMCON ;

;=======================================================================================================================================================

;****************1 банк памяти

bsf STATUS,RP0 ;

;=======================================================================================================================================================

; Конфигурация портов ввода/вывода

;=======================================================================================================================================================

movlw b'00001111' ;установка портов <A> как ВХОДЫ

movwf TRISA ;установка портов <A> как ВХОДЫ

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

movlw b'00000000' ;установка портов <C> как ВЫХОДЫ

movwf TRISC ;установка портов <C> как ВЫХОДЫ

;=======================================================================================================================================================

;****************0 банк памяти

bcf STATUS,RP0

;=======================================================================================================================================================

; Конфигурация прерывания портов <RA>

;=======================================================================================================================================================

movlw b'00011000' ;Разрешено прерывание от портов <RA0>/<RA1>/<RA3> и <RA2/INT>

movwf INTCON ;

;=======================================================================================================================================================

;****************1 банк памяти

bsf STATUS,RP0 ;

;=======================================================================================================================================================

movlw b'11010000' ;Отключена слабая подтяжка портов <RA>

movwf OPTION_REG ;Прерывание по возрастанию <RA2/INT>

bcf TRISA,RA2 ;установка порта <RA2> как ВЫХОД

;=======================================================================================================================================================

; Конфигурация прерывания <RA0>/<RA1>/<RA3>

;=======================================================================================================================================================

movlw b'00001011' ;разрешение прерывания по изменению состояния

movwf IOCA ;портов <RA0>/<RA1>/<RA3>

;=======================================================================================================================================================

movlw b'00000000' ;Полное отключение слабой подтяжки

movwf WPUA ;на всех портах <RA>

;=======================================================================================================================================================

;****************0 банк памяти

bcf STATUS,RP0 ;

;=======================================================================================================================================================

bsf INTCON,GIE ;и ГЛОБАЛЬНОЕ ПРЕРЫВАНИЕ РАЗРЕШЕНО!

;=======================================================================================================================================================

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

А это что ?

movlw b'11010000' ;Отключена слабая подтяжка портов <RA>

movwf OPTION_REG ;Прерывание по возрастанию <RA2/INT>

bcf TRISA,RA2 ;установка порта <RA2> как ВЫХОД

ЗЫ: И разберитесь в комментариях. У Вас там каша...

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

А подключать к реальному ПИКу +5V без ограничителя тока сцыкотно...

И правильно. Выводы МК не стоит напрямую соединять с +U или с землей даже если они заведомо установлены как входы!

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

Народ, а кто сталкивался с режимом <<sleep>>? Принцип простой: вогнать ПИК в спячку и ждать прерывания, прерывание произошло - включить один LED, на основе программной задержки(мигание), опять прерывание - включить два LED-а, (мигание). В отладке MPLAB IDE - всё работает, а в реальном, он секунд 10-ть спит, а потом сам включает LED.

Кто нидь сталкивался с такой проблемой?

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

, а в реальном, он секунд 10-ть спит, а потом сам включает LED.

Кто нидь сталкивался с такой проблемой?

а как сам думаешь много людей твою приблуду делали???

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

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

а как сам думаешь много людей твою приблуду делали???

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

Перефразирую - как должна, и как работает команда <<sleep>>?

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

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

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

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

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

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

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

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

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

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

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

×
×
  • Создать...