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

Общие вопросы по PIC-микроконтроллерам


NebsteR

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

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

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

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

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

MOVLW        1            ;

ADDWF         XX,W    ;

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

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

 

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

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

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

 

 

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

В 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

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

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

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

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

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

1 час назад, ALEKS1102X сказал:

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

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

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

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

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

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

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

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

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

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

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

 

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

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

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

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

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

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


 

 

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

В 16.09.2017 в 13:27, ALEKS1102X сказал:

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

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

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

В 23.09.2017 в 14:33, ALEKS1102X сказал:

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

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

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

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

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

戦う前に相手のベルトの色に注目

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

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 когда фирма Микрочип откололась от какой-то релейной компании (если правильно помню) и стала независимой компанией, выпускающей чисто микроконтроллеры. И вот тогда один из её программистов решил, что переполнение некоего многобайтного регистра нужно делать через Зеро.

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

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

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

 

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

В 27.09.2017 в 08:32, my504 сказал:

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

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

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

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

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

 

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

1 час назад, ALEKS1102X сказал:

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

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

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

 

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

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

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

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

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

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

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

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

戦う前に相手のベルトの色に注目

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

В 28.09.2017 в 22:17, my504 сказал:

 

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

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

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

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

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

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

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

:))))

 

 

戦う前に相手のベルトの色に注目

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

8 часов назад, my504 сказал:

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

 

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

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

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

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

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

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

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

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

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

 

戦う前に相手のベルトの色に注目

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

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

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

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

ic-prog.jpg

tl866 config.jpg

tl866 error.jpg

FU_3i.HEX

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

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

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

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

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

 

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

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

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

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

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

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

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

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

FU_3i.HEX

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

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

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

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

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

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

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

 

1111.HEX

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

  • 2 месяца спустя...

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

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

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

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

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

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

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

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

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

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

  • Сообщения

    • Это тот самый проект, просто следующий этап задачи - реализовать чтение уже записанных файлов на стороне МК.
    • Когда снова появился интерес к усилителям, тоже хотел всех обмануть, попробовал 7294 в разных схемах, 3886 тоже несколько способов приготовления, вроде и неплохо играет, если ничего другого не слушал, годится. Но червячок сподвиг сделать Натали Хоум, УХ! челюсть отвисла, наслушаться не мог, узнал, что такое сцена в звуке, динамика, детальность, да всё лучше. Вот я всегда и спрашиваю, по сравнению с какими другими УМ играет хорошо расхваливаемый усилитель.
    • @Armenn Хорошо. Сделал резистор на 5 Ом.  Результата два. 1. Если включить блок питания в сеть, а уже потом подключить резистор на 5 Ом в фиолетовый провод, тогда резистор просто будет греться.  2. Если подключить резистор на 5 Ом в фиолетовый провод, а уже потом включить блок питания в сеть, тогда случится следующее: лампочка предохранителя от КЗ засветится (через которую я подключаю БП в сеть), а блок питания начнет пищать. Заснял это на видео -   
    • Ну-вы и сравнили. Вот когда будете строить сварочный инвертор на такую частоту-то там нужно  будет учитывать скин эффект. А на частоты до 75кгц-можно забить, отбить и не принимать во внимание. Тем более-что все стараются аппараты до 200А строить. На кольце плотность тока до 15А на мм ^2, на Ш от 10А на  мм^2 А вентилятор-он все лишние тепло сдует ко льдам в Антарктиде. Проверьте монолит 2,12мм, я таким мотаю СТ. Интересно-что там с ним делается на частотах от 30 до 50кГц? Длинна провода примерно 2 метра-На сердечник Е70 влазит 18 витков
    • Добрый вечер всем!  Проблема следующая: Есть флешка с записанной файловой системой через USB MASS STORAGE DEVICES. При "втыкании"  в порт USB открывается на ПК диск с содержимым. Я подключил библиотеку Fatfs и прописал низкоуровневые функции чтения и записи в файле diskio.c Работаю с файлом так:   disk_initialize(SDFatFs.drv); if(f_mount(&SDFatFs,(TCHAR const*)USER_Path,0)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_f_mount!\r\n"); } else { if(f_open(&MyFile,"01.WAV",FA_READ)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_open_File1!\r\n"); } else { Usart1_Send_String("open_File_OK1!\r\n"); } if(f_open(&MyFile,"01.wav",FA_READ)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_open_File2!\r\n"); } else { Usart1_Send_String("open_File_OK2!\r\n"); UINT testBytes=0; f_read(&MyFile, buff1, 512, &testBytes); sprintf(buf1, "TestBytes=%d\r\n", testBytes); Usart1_Send_String(buf1); Usart1_Send_hex((char*)buff1, 512); Usart1_Send_String("read_File_complite!\r\n"); f_close(&MyFile); } } подправил diskio.c так:   DRESULT disk_read ( BYTE pdrv, /* Physical drive nmuber to identify the drive */ BYTE *buff, /* Data buffer to store read data */ DWORD sector, /* Sector address in LBA */ UINT count /* Number of sectors to read */ ) { DRESULT res; //res = disk.drv[pdrv]->disk_read(disk.lun[pdrv], buff, sector, count); sprintf(buffer0, "sector=%lu\r\n", sector); Usart1_Send_String(buffer0); w25qReadPage(buff, sector*2); w25qReadPage(buff + 256, sector*2+256); res=RES_OK; return res; } #if _USE_WRITE == 1 DRESULT disk_write ( BYTE pdrv, /* Physical drive nmuber to identify the drive */ const BYTE *buff, /* Data to be written */ DWORD sector, /* Sector address in LBA */ UINT count /* Number of sectors to write */ ) { DRESULT res; //res = disk.drv[pdrv]->disk_write(disk.lun[pdrv], buff, sector, count); w25qWritingByUSB(sector, (uint8_t*)buff); res=RES_OK; return res; } #endif /* _USE_WRITE == 1 */ функцию чтения на самом деле пробовал прописывать по разному, все равно не корректно работает... Выдает в отладке такое:   Program start!.... sector=0 // это обращение к функции чтения DRESULT disk_read (); Error_open_File1! sector=0 // это обращение к функции чтения DRESULT disk_read (); Error_open_File2! Что я забыл еще добавить?
    • В былые годы запрещалось размещать на форуме бессмысленные темы. Видать, с тех пор правила существенно изменились.
  • Похожий контент

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