• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!
NebsteR

Pic. Общие Вопросы

448 сообщений в этой теме

ALEKS1102X    1

Извините ещё раз, вчера жена всё торопила за покупками поэтому и в СИ и в АСМ набросал кучу ошибок:

Конечно для BCD нужно использовать не одноразовую функцию "if", а "while"

А здесь "if (C = 1)" должно быть "if (C == 1)",

ну и наконец - если дизасемблировать строку выше, то там естественно будет:

MOVLW        1            ;

ADDWF         XX,W    ;

и так далее... Потому что если делать через "INCF"  то бит "С" не установится, и далее смысл команды теряется...

Поделиться сообщением


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
IMXO    1 099

 

19 часов назад, ALEKS1102X сказал:

поверьте - преобразование для PIC18 с 8 МИПС пару мкс., и вот у меня в руках функция "BCD" которая даже если написана для PIC18 - с лёгкостью проглатывается и для пик10 - 16, т.е код типа:

басни не рассказывай

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ALEKS1102X    1
В 17.09.2017 в 09:19, IMXO сказал:

 

басни не рассказывай

 

 

Добрый день конфе! извините что долго не отвечал, сейчас просто решается вопрос с Али, где вроде нужно доплатить 4,9 $, и мне отправят другую партию из 10 PIC18F46K22... Ну что - я рискну, тем более что старыё (перемаркированные PIC18F46K20) я так понял - останутся мне в нагрузку.

А по поводу того что писал раньше - гляньте архивчик, набросал по быструхе - да, если переводить число 9999, то при частоте 8 Мипс для PIC18 это займёт 57 мкс., Но ведь это максимальное значение, и на индикатор если оно и будет выводиться - то в очень крайних и редких случаях. Давайте возьмём среднее значение - 5.000. Вот такое значение будет конвертироваться за 23 мкс.

А теперь давайте глянем там-же, в архиве) как это будет делаться с помощью функции "Dec2Bcd16(X)" - в общем, если запускать в Микро СИ, то мой код выполняется за 188 мкс (я там не правил конфиг, поэтому работа идёт с 2 Мипс), а функция Dec2Bcd16(X) выполняется за 77х (780) мкс, т.е.  по сути в 4,5 раза больше времени. Причём я сравниваю с макс. результатом: если в своём коде я буду перекодировать число 155, к примеру, то оно действительно займёт пару мкс, а в функции BCD оно так и останется - 780 мкс.

Если Вы это имели ввиду ( 2мкс и 23 мкс), то да - я чууууть Вас обманул.

Теперь по поводу перевода АСм кода из PIC18 в PIC16 - там всего-лишь одна команда не воспринимается корректно - это "SUBWFB" - вычитание с учётом бита Карри, все остальные: BC, BNC, BZ, BRA, и т.д. перевариваются нормально - что я собственно и мел ввиду, мож некорректно написал об этом.

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

Я в архиве сделал две папки - для Пик 16 и 18 - там увидите один и тот-же код для 16 и 18 серии, а ещё всё-таки проверил по новому - как простую функцию, инкремента четырёхбайтного числа производит Микро Си и ХС 8... Да..., те кто писали эти компиляторы однозначно в разных дурках нычкуются - вместо просящегося кода:

     MOVLW      1          ; 
     ADDWF      _dcab,F    ;
     BTFSC      STATUS,C   ;
     ADDWF   _dcab+1,F  ;
     BTFSC      STATUS,C   ;
     ADDWF   _dcab+2,F  ;
     BTFSC      STATUS,C   ;
     ADDWF     _dcab+3,F  ;

там.... Да короче сами увидите, чего повторно писать буду.!!!

Ну и последнее: Я ни в коей мере не хочу обидеть никого, и уж тем более развести новых халивар. Я просто делюсь мыслями... Вот к примеру - все говорят - что на Си проще писать - да одинаково писать - если не знаешь сам камень - то хоть на суахили пиши - ты его даже не проинициализируешь. И такая-же картина если переводить код с одного камня на другой - пока не будет инициализации камня, остальной код можно засунуть сзади и поглубже.

Но что меня привлекает в АСМ - это то что ты сам пишешь что знаешь,  и что хочешь получить на выхлопе, а не пользуешься чужими макросами. Вот сейчас многие чего-то там пишут под USB - а чего пишут по сути сами не знают! И могу гарантировать что 90 % этих написателей даже не знают что там и как в таблице Fat32, я уже не говорю про NTFSC...

Ну и правильно - а зачем - будет получиться глюконат - на китаяйцев спишем - нам что главное - запустилось, вроде работает - ну и пошли все в (|) - ну короче туда...

А потом: Ема-ё писал вроде простую вещь - всего один АЦП вход определяющий протечку (памперс), ну добавил ещё звоночек играющий мелодию _ А АРМ32 НЕ ХВАТАЕТ - ЧЕГО ТАМ ПРОИЗВОДИТЕЛИ Д*ОЧАТ - НУЖНО БЫ БЫЛО УЖЕ АРМ 9932 ВЫПУСТИТЬ...

СИ++ АСМ--.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 099
1 час назад, ALEKS1102X сказал:

ещё всё-таки проверил по новому - как простую функцию, инкремента четырёхбайтного числа производит Микро Си и ХС 8..

1. Микрос сделал все правильно , оставив атомарный доступ к dcab , вы же не указывали, что она доступна только в main, она описана глобально...

2. а вот у вас Ашибко, команда  INCF  бит CARRY  не изменяет

3. восьмой хусым тоже сделал все правильно! создал атомарный доступ и к значению dcab прибавил 1 и занес полученный результат в dcab, что вы от него и требовали , команды dcab=dcab+1 и dcab++ это разные команды,  также как и команды dcab++ и ++dcab

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ALEKS1102X    1

 1. Я такой-же доступ предоставил и хусымы... не ?

2. Ашибко я исправил в сообщении, архив лень было потрошить ... не ?

3. Если хусыме подсовываешь команду "x++", то он вообще ересь каку-та несёт, я сильно не разбирался, но Вы как знающий поправьте...

     3.1 Разницу между х++ и ++х я знаю...

4. Напишите мне на СИ так чтобы мне чётко нарисовало то что я хочу получить на АСМ для Микроса и Хусейна. А не нарисуете - потому как не Вы написатель этих       макросов...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 099

1. ну так в чем возмущения? еще раз если не доходит, dcab=dcab+1 и dcab++ это разные команды! поэтому и результат микроса и хусыма разный
4. легко,
 

Скрытый текст

 


2:                 
3:                 __CONFIG (RC & WDTDIS & PWRTDIS & UNPROTECT);
4:                 
5:                 void main (void)
6:                 { unsigned long decb=0;
7:                 
8:                 
9:                 while(1)
   3FF    2BF6     GOTO 0x3f6
10:                 {
11:                   NOP();	 
   3F6    0000     NOP
12:                   decb++;
   3F7    0A8C     INCF 0xc, F
   3F8    1903     BTFSC 0x3, 0x2
   3F9    0A8D     INCF 0xd, F
   3FA    1903     BTFSC 0x3, 0x2
   3FB    0A8E     INCF 0xe, F
   3FC    1903     BTFSC 0x3, 0x2
   3FD    0A8F     INCF 0xf, F
13:                   NOP();
   3FE    0000     NOP


 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
vksam    5
В 16.09.2017 в 13:27, ALEKS1102X сказал:

Не знаю как кому - я уже тысячу раз пытался перейти на СИ, но как гляну в дизАСМ, у меня волосы на жопе хуже чем у ёжика на голове. Кто этих написателей си компиляторов так учил из АСМ в СИ переводить - Корабельников видать, или как его там ?!?...

Какие впечатлительные!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    166
В 23.09.2017 в 14:33, ALEKS1102X сказал:

Но что меня привлекает в АСМ - это то что ты сам пишешь что знаешь,  и что хочешь получить на выхлопе, а не пользуешься чужими макросами. Вот сейчас многие чего-то там пишут под USB - а чего пишут по сути сами не знают! И могу гарантировать что 90 % этих написателей даже не знают что там и как в таблице Fat32, я уже не говорю про NTFSC...

Какая связь между Fat32 и USB  я, откровенно говоря, не понял...

Однако, любезный, писать самому стек USB на АСМе, мягко говоря, трудоемко. Мало того, полученный код будет дико неудобен при его интеграции в проект, поскольку объемен даже на Си,а уж на АСМе одни комментарии займут 2/3 текста исходника.

Я  сам почти все на продукции Микрочипа пишу на АСМе. За исключением сложных стандартных протоколов. 

Воспользоваться стандартным стеком USB, не понимая как он работает практически невозможно, особенно если учесть, что очень часто его надо править под себя, изменяя дескрипторы и  создавая свою функцию Application.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ALEKS1102X    1

1. Да не, я особо и не возмущаюсь, с чего возмущаться то ?

    С того что переменная заявленная вне рабочей вункции "main" как глобальная -  unsigned long  dcab = 1234 (это пример); Дальше я её инкрементирую в любом в     любой функции внутри "маин", и независимо от функции, в которой я использую эту переменную - на выходе я должен получить...:

dcab++; // ->

incf      dcab,f            ;

btfsc    STATUS,Z      ;

incf      dcab+1,f        ;

btsfc    STATUS,Z      ;

incf      dcab+2,f        ;

и т.д.

или же:

dcab = dcab+ 1 ; // ->

movlw  1                   ;

addwf   dcab,f            ;

btfsc    STATUS,C      ;

addwf    dcab+1,f      ;

btfsc    STATUS,C      ;

addwf    dcab+2,f      ;

и т.д.

И независимо от прерываний, или переходов из одного банка ОЗУ в другой (для Пик 18 компилирует корректно) - мне не нужно глобальную переменную зачем-то сохранять в регистрах 0х70 ... 0х7F (которые используются во всех банках ОЗУ) - я не использую эту переменную внутри какой-то функции, ну и уж ни как не видно по размеру кода - что я могу перескочить на другую страницу программной памяти (зачем промежуточные регистры?)  -  в любом случае на выходе я должен получить результат: dcab = 1235 ? Или не ?

 

4. А я и не говорил про переход через Зеро - через Зеро конечно легко... Не знаю - сколько лет назад - мож 60-70 когда фирма Микрочип откололась от какой-то релейной компании (если правильно помню) и стала независимой компанией, выпускающей чисто микроконтроллеры. И вот тогда один из её программистов решил, что переполнение некоего многобайтного регистра нужно делать через Зеро.

А мне как-то привычней переполнение через Карри, а сравнение с нулём через Зеро...

В любом случае - в данной ситуации переполнение мл. регистра вызывает установку бита Карри, а последующее обнуление этого регистра вызывает установку Зеро - по сути установятся два бита одновременно.

Но я не имел ввиду код с использованием Зеро...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ALEKS1102X    1
В 27.09.2017 в 08:32, my504 сказал:

Какая связь между Fat32 и USB  я, откровенно говоря, не понял...

Однако, любезный, писать самому стек USB на АСМе, мягко говоря, трудоемко.

 Ну про Fat32 и USB если честно - то первое что пришло в голову это флеш карточки (USB), да и то - так чисто символически.

А насчёт написать - так кто-то ж написал, перевёл в СИ из низкоуровневого... Тут вопрос в другом - когда ты просто любитель , то информации в интернете - куча, но один понос. И из этого поноса - полезной информации максимум 1%. Если проще - то проще будет проанализировать передачу TTL-USB чем найти аналогичную действительно полезную информацию...

А конкретно если мне понадобится тот USB - то проанализирую шину, почитаю инфу, и и выкину 90% из того Си кода, который сейчас универсальный и типа неприкасаемый. А как окажется - в 5 раз сложнее ИИС.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    166
1 час назад, ALEKS1102X сказал:

 Ну про Fat32 и USB если честно - то первое что пришло в голову это флеш карточки (USB), да и то - так чисто символически.

А насчёт написать - так кто-то ж написал, перевёл в СИ из низкоуровневого... Тут вопрос в другом - когда ты просто любитель , то информации в интернете - куча, но один понос. И из этого поноса - полезной информации максимум 1%. Если проще - то проще будет проанализировать передачу TTL-USB чем найти аналогичную действительно полезную информацию...

А конкретно если мне понадобится тот USB - то проанализирую шину, почитаю инфу, и и выкину 90% из того Си кода, который сейчас универсальный и типа неприкасаемый. А как окажется - в 5 раз сложнее ИИС.

 

Вы пишите невероятную чушь. 

Просто апокалиптическую пургу. 

Это я Вам заявляю как человек, который не только ЮСБ девайс реализовал, причем под свою задачу, со своими дескрипторами, но и ЮСБ хост стыкующийся с этим девайсом. 

Причем я пишу в основном на АСМе и в основном для 16-разрядных ПИКов. 

Стек ЮСБ написать на АСМе можно, только это будет абсолютно пустой труд, ибо пользоваться этим стеком будет на порядок сложнее, чем написанным на Си. 

Прежде чем писать свой бред, возьмите за труд почитать спецификацию на ЮСБ в общем и спецификацию реализуемого класса. А потом поговорим на эту тему. 

Если у Вас останется желание говорить... 

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ALEKS1102X    1
В 28.09.2017 в 22:17, my504 сказал:

 

Если у Вас останется желание говорить... 

ОК! Если понадобится ЮСБ, и если будет что-то непонятно, то обращусь к Вам.

Хотя... пока за помощью ни к кому не обращался...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    166

Я Вам помощь и не предлагал.

Прежде чем помогать человеку, нужно чтобы он сам разобрался в предмете минимум на 50%.

Более всего меня развеселила Ваша идея снифферить протокол, совершенно не представляя его структуру, а так же его сравнение с I2C.

:))))

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ALEKS1102X    1
8 часов назад, my504 сказал:

Я Вам помощь и не предлагал.

 

Да надо мне ваша помощь как собаке 40 ног... Ответил так что бы не грубить как Вы мне. Вы что думаете я не знаю приблизительную работу этого сраненького ЮСБ ?

Да все они : Усарт + 485, ЮСБ, заброшенный французами ВАН, и после подхваченный другими и переименованный в КАН - всё это вид одного и того же заднего места, только  с разных ракурсов. Все они имеют дифференциальную шину, но не имеют чёткой синхронизации, из-за чего ошибки сыплют пачками. Усарт частично спасают от рассинхронизации стартовые и стоповые биты, юсб и кан после определённого количества одинаковых бит передают бит другой полярности (что-то наподобие, давно уже читал), чтобы не потеряться в поносе информации, и т.д. А остальное VID (идентификатор производителя) - это передавай любое, PID - насколько помню - это предназначение устройства (программатор, веб камера, и т.д), и т.п. И в конце некой передаваемой пачки будет сыпать кучу CRC, а половина софта призвана решить проблемы железа из-за рассинхронизации - с какого места возобновить передачу, и т.п.. У кан равносильные устр-ва со всех сторон (в отличие от юсб), приоритет передачи информации, и т.д. И сравнительно большие расстояния передачи информации - а в конце та же CRC, вычисление ошибок, повторные передачи, и всё остальное что из этого вытекает. А на уровне железа они практически одинаковые...

Если Вы имели ввиду что это совсем не похоже на и2с, то да - нужно было Вам спарку усарт+485 в пример привести. Только и2с в десятки раз лучше - я на софтовом и2с проверяю просадку обеих шин, и ошибки при передаче старт-стопов, а в результате в устр-во встраиваешь проверку на ошибки, через неделю проверяешь регистр на наличие битов ошибок - а он пуст, хотя шина общается к примеру с DS1307 2 раза в секунду.  А если на выход шины SCL повесить парочку доп транзисторов и подтянуть через 120 Ом к плюсу, и похожее сделать по шине данных (сделать что-то наподобие усилителя сигналов), то можно устройства на пару десятков метров друг от друга разносить, чего не сделаешь с юсб. Тоже можно сказать и про спи - из-за наличия шины синхронизации тоже неглючный. А Вы тут сразу на дыбы... Ну разобрались с юсб - молодец, купите себе медальку с закруткой на спине. Когда мне понадобится этот юсб я тоже разберусь...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    166

Вы продолжаете нести бред. Причем самоуверенно, не имея НИ МАЛЕЙШЕГО понятия об упоминаемых протоколах.

С какого перепуга Вы решили, что "ошибки сыплют пачками"? 

С какого перепуга Вы решили, что синхронный интерфейс устойчивее к помехам по сравнению с асинхронным?

Если Вы не знаете как работать с УАРТом, то не надо его критиковать. Лучше НАУЧИТЕСЬ использовать.

Могу Вас расстроить, что синхронные интерфейсы ни на что, кроме как в ЛОКАЛЬНЫХ (в пределах одной платы) коммуникациях не годны. Просто потому, что сама линия синхронизации такая же уязвимая к помехам, как и линия данных, есличо. Мало того, наиболее защищенной от полмех является ДИФФЕРЕНЦИАЛЬНАЯ ПАРА, а все эти SPI, I2C и прочая мутотень - это НЕСИММЕТРИЧНЫЕ физические протоколы. Именно поэтому в высоконадежной КАН и прочих ПРОФИБАС, ЭЗЕРНЕТ используется дифпары и асинхронный интерфейс.

 

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ussr100    1

Здравствуйте уважаемые форумчане. Помогите решить проблему с прошивкой PIC16F676. Есть в наличии универсальный  программатор minipro tl866, к сожалению железного ком порта нету. При попытке загрузить в буфер прошивку выдает ошибку о несоответствии длины файла. Так же не могу вручную выставить правильную конфигурацию микроконтроллера, так как не нашел ручного переключения  для работы от внутреннего генератора. IC-Prog прошивку и конфигурацию открывает правильно. Может кто то помочь в подкорректировать прошивку для правильного определения конфигурационных бит в программаторе tl866 . Скрины и саму прошивку прилагаю.

Заранее спасибо за помощь.

ic-prog.jpg

tl866 config.jpg

tl866 error.jpg

FU_3i.HEX

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zhuk72    10

Что там с длиной файла я не знаю, с таким программатором дел не имел, а если хотите изменить конфиг-биты на внутренний генератор (зачем, кстати?), то отметьте FOSC2 (стр. 56 ДШ).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ussr100    1

Хочу изменить потому что в схеме микроконтроллер работает от внутреннего генератора. При ручном выставлении битов конфигурации как в  IC-Prog

у меня получается конфигурация 3FA7 или  3E58, а мне нужно получить конфигурацию  31CD. Может я плохо  поясняю суть проблемы, так как я не программист , а просто пользователь.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zhuk72    10

Я же не от балды дал ссылку на страницу в даташите, там расписаны все биты, с которыми вы воюете. Введите их в двоичный калькулятор слева направо и получите то самое слово. Заодно и принцип поймете.

У вас в ICProg выставлен тот самый 31CDh, но у него помимо внутреннего генератора еще и такты на RA4 выводятся (CLKOUT). Вам это правда нужно?

Если нет, то ваш конфиг - 31CCh, как я и сказал, с выставленным битом FOSC2 и очищенными FOSC1 и FOSC0. Остальные стоят правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ussr100    1

Так не работает. Я НЕ МОГУ вручную выставить конфигурацию не 31CDh, не 31CCh. У меня серые окна BG1 BG0 не поддаются изменению(защита от дурака). Я все комбинации перепробовал. Нужно только автоматом с прошивки подтянуть. Понимаю, что это проблема программатора, но другого нет.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zhuk72    10

FU_3i.HEX

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

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

Изменено пользователем Zhuk72

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ussr100    1

Хух. Запустилось. Спасибо  Zhuk72 за помощь. Оказалось что нужно галочки инверсно ставить.

Но Config Word все равно "не стреляет"..... хотя как то работает.....

Последняя ячейка у меня в программаторе не читается и не пишется- еще одна защита от дурака. Константу никак не увидеть.

Методом "научного тыка",  записывая и сохраняя прошивку, понял структуру которую должен иметь файл прошивки для автоматического подхватывания  программатором. Сейчас все автоматом ставиться.

 

1111.HEX

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Serega4789
      Привет всем! пишу программу для pic16f84a кривошипный пресс, получилось запустить один режим (одноходовый) без блокировок и защит , для реализации двурукого включения нужно, чтобы нажимались 2 кнопки , при этом нужно чтобы программа следила за интервалом времени между нажатием 2х кнопок , при одновременном нажатии программа запоминает это событие и через 3-5 циклов сбрасывает ошибку и блокирует схему до сброса , при интервале 0,5 сек между нажатием кнопок программа выполниться без ошибок , при превышении интервала в 0,5с придется заново нажать на кнопки !
      Не хватает знаний команд и опыта для построения кода

    • Автор: Qwer11
      Здравствуйте.
      У меня есть микроконтроллер pic18f4550,
      я научился мигать светодиодом в flowcode и хотел бы сделать гирлянду,
      и небольшую вывеску из светодиодов.
      Как я понимаю на ножку микроконтроллера смогу не много поставить светодиодов т.к. там ограничение по току будет.
      поэтому исходя из схемы что я нашёл, используют транзистор для включения линии из светодиодов,
      какой транзистор по хар-кам подойдёт для включения 20 светодиодов в линии, (20мАх20=400мА)

      и как например я смогу включать светодиоды поочерёдно в одной линии,
      я читал что есть74HCT595, для экономии ножек например, при подключении индикатора светового,
      как я понимаю, для включения 20 светодиодов поочерёдно нужно или 20 портов использовать и 20 проводов,
      или перед каждым светодиодом поставить микросхемку какую нибудь, которая будет давать сигнал на включение.
      Спасибо.
    • Автор: Serge77
      Обязанности:
      · Разработка радиоэлектронных и GSM-устройств: разработка схем, программирование, разводка печатных плат, разработка документации.
      · Программирование микроконтроллеров STM, AVR, ARM, PIC на языке С/С++
       
      в личку или en@argument74.com
    • Автор: пафнут
      доброго времени! недавно начал изучать pic контроллеры, бошка пухнет. вопрос в следующем: как в ассемблере реализуется процедура шим
      1)к пример у меня имеется одна кнопка и переключаю я ей три светодиода по принципу регистра сдвига и мне нужно чтобы каждому из трех светодиодов соответствовал к примеру коэффициент заполнения 30, 60, и 100%( делаю себе подогрев жопы к зиме)
      2) можно ли обращаться к кнопке при организации процедуры выполнения 15 минутной  задержки, чтобы я мог в любой момент его выключить до истечения 15 минут
      в прикрепленках сама схема в протеусе , но программу я написал только для включения одного светодиода, чтоб с одним хотя бы разобраться и тайминг поставил 5 сек, так сказать для наглядности
      pic.asm
      pic16.DSN
    • Автор: andrei@qwa
      Помогите пожалуйста. Нужно срочно описание данной принципиальной схемы, для чего нужен каждый элемент. Как происходит программирование микроконтроллера. Это схема JDM программатора для PIC-микроконтроллеров.