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

Вопросы от начинающих по МК


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

23 часа назад, Алексей Смокотин сказал:

...Просто не всегда то что непонятно, можно найти в интернете, в каких то уроках...

Чтобы списАть, как в школе? А самому додуматься нет желания?

2 минуты назад, Алексей Смокотин сказал:

...хотел убедиться, что других вариантов нет.

Есть. Целый "вагон и маленькая тележка".

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

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

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

1 час назад, Геннадий сказал:

А самому додуматься нет желания?

А Вы сами до всего додумываетесь? И никогда не пользовались литературой? Не подсматривали в интернете, не спрашивали на форумах, у друзей, знакомых? Если это так, то Вам не здесь надо сидеть, а в каком нибудь институте, ПО для спутников Земли писать. Поэтому я не люблю форумы, потому что реально могут подсказать, объяснить, показать на примере только 50% людей, а остальные только могут умничать, типа Я такой умный, все знаю, а ты, баран, иди книжки читай. И по этому поводу списывать часть кода приходится, потому что толково объяснить как оно работает никто не может...

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

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

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

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

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

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

В 05.04.2018 в 23:55, Алексей Смокотин сказал:

Т.е. при выполнении условия "установлена перемычка", после оператора if переписывать опять весь код, за исключением ненужных мне строк?

Зачем "переписывать опять весь код"? После IF используйте оператор GOTO на нужное вам место программы. И не слушайте того, кто говорит, что использование оператора GOTO - порочная практика программирования. Они просто не знают, что предлагаемые ими замены после перевода на ассемблер - абсолютно то же самое.

1 час назад, Алексей Смокотин сказал:

реально могут подсказать, объяснить, показать на примере только 50% людей, а остальные только могут умничать

... и этот процент всё уменьшается и уменьшается. :(

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

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

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

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

И я догадываюсь почему это происходит. Никто не хочет вникать, ждут разжованое и готовое. Но это медвежья услуга. Когда берёте что-то готовое вы всё так же не понимаете как оно работает. А книжки читать по программированию - бестолку, они НЕ НАУЧАТ программировать, только строить типовые конструкции на конкретном языке - т.е. та база которую надо знать ПРЕЖДЕ чем начать программировать. Если вы не понимаете базовые конструкции то учится программировать ещё рано, вечно будете выдегивать код и вставлять без понимания.
Развивайте абстрактное мышление - оно даёт ключ к успешному программированию. Начните с блок-схем программ или её частей, потом гораздо легче это превратить в код.
А на форуме... лучше искать направление на нужный ответ, а не сами ответы.

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

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

22 часа назад, Алексей Смокотин сказал:

А Вы сами до всего додумываетесь?...

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

Именно так. Литературой пользуюсь (еще как). Не подсматриваю, не спрашиваю, не жду готового. Выводы делаю на собственном опыте, а не чужих решениях. Именно поэтому и написАл "вагон и маленькая тележка".

Насчет умничать. Где я такое проявлял по отношению к Вам? Покажите. Все остальное - справедливо, читайте книжки...

 

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

Уважаемые знатоки, подскажите как организовать питание схемы на 5v от аккумуляторов или батареек. Отдельных аккумуляторов на 5v я не нашел( по крайней мере в зоне ближайшей доступности). Думаю взять 4x1.5V батарейки и понизить стабилизатором L4940V5 до 5V. Интересно, как решают такую проблему более опытные пользователи.

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

Схему беспроводного термометра. Там датчик температуры lm335, МК PIC16F683 и радиопередатчик XY-MK-5V. У датчика диапазон напряжения достаточно большой, у МК по даташиту 2-5.5V, по радиомодулю не нашел даташита, однако 5V в названии говорит само за себя. В общем то датчик и мк можно спокойно запитать от 4.5V, но придется перерасчитывать значения для АЦП. Ну и я не уверен как 4.5V повлияют на работу радиомодуля.

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

На счёт модуля не а курсе тоже. Погуглить нужно. А про АЦП не совсем понял. У вас опорное это напряжение питания?. Нужно ион использовать. В пике внутреннего ИОНа нет разве?

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

Используй внешнюю опору. Но ИМХО ПИК туда как раз ни к селу ни к городу. При питании от батареек надо стараться понизить потребление тока, иначе схема у вас будет требовать замены батареек каждые 2 недели. у ПИК-а печально с энергосбережением, и применение стабилизатора с батарейным питанием не совместимо - один только стабилизатор будет разряжать батарейку с неприемлемо большой скоростью.
Передатчик, если простейший, то работает в широком диапазоне напряжений только мощность будет сильно падать по мере разряда батареи.
Кстати ваш стабилизатор L4940V5 на 1.5А, экономией потребления там и не пахнет. Он один только съест батарейку за 41 день.
Что касается МК посмотрите какой у него ток потребления в режиме сна. Для здоровья батареек потребляемый ток не должен превышать 1мкА, а лучше порядка 200нА. Такое достичь сложно даже отключая неиспользуемый потребитель полевым транзистором, который даже в отключенном состоянии "течёт" током в 0.5мкА(для силовых полевиков на 1-2А это норма).
Для АЦП - без вариантов, использовать внешний ИОН хотябы тот же TL431, подключая его только на время измерения(зачем ему ток потреблять пока он не нужен?) - можно его даже подключить к свободному порту контроллера и подавать "1" за несколько милисекунд перед измерением.

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

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

В 09.04.2018 в 13:44, Шампунь сказал:

как организовать питание схемы на 5v от аккумуляторов или батареек. Отдельных аккумуляторов на 5v я не нашел

Неплохие результаты дает DC-DC преобразователь MAX630 или MC34063, только надо позаботиться о фильтрации с помощью дополнительного LC фильтра (на ферритовой "тумбочке"). Платку стабилизатора сделать отдельно и полностью за экранировать фольгой.

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

Причем батарейки высасывает до суха (0.65v) при хорошем КПД.

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

Всем привет. Подскажите пожалуйста.Имеется мк STM8S. На борту есть 16 битный таймер состоящий из двух регистров счетчика. Так вот как мне взять значение таймера и сравнить его со значением переменной. Брать каждый байт по отдельности или как. Подскажите. И еще такой вопрос. Можно ли скажем из пременной а вычесть значение 120 просто записав так: int a = b - 120? поймет ли это МК?

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

Не знаю, как в вашем компиляторе, а в компиляторах для AVR 16-битные регистры можно считывать, как одно 16-битное значение типа int.

Если это не проходит, то можно сделать так

int tcnt=tcntH*0xff+ tcntL;

или так
 

int tcnt=tcntH;

tcnt=tcnt<<8;

tcnt=tcnt+tcntL;

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

//Объявляем юнион

union int_char
 {char tcnt_char[2];
  unsigned int tcnt_int;
 } TIMER;

//присваиваем элементам массива младший и старший байты счетчика таймера

TIMER.tcnt_char[0]=tcntL;

TIMER.tcnt_char[1]=tcntH;

//далее работаем с переменной TIMER.tcnt_int, которая  равна 16-битному значению счетчика таймера

if(TIMER.tcnt_int > var) {....};

Выражение

int a = b-120;

вполне корректно.

 

 

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

43 минуты назад, Sergey-Ufa сказал:

int tcnt=tcntH*0xff+ tcntL;

Только умножать не на 0xFF а на 0x100, конечно.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Извините. но че то не понял. У меня есть два восьми битных регистра старший и младший. TIM1_CNTRH и TIM1_CNTRL. раньше я подбирал предделитель так, так что заполнялся только младший регистр и мне этого вполне хватало. Теперь необходимо увеличить точность и нужно заполнять два этих регистра. как мне сравнить знчение счетчика с каким то числом? И вообще можно ли обьеденить два однобайтовых числа в одно двухбайтовое что бы одно было продолжением другого??>? тогда бы можно было присвоить переменным значение каждого регистра и обьединить их

5 часов назад, Sergey-Ufa сказал:

Не знаю, как в вашем компиляторе, а в компиляторах для AVR 16-битные регистры можно считывать, как одно 16-битное значение типа int.

То есть Вы имеете ввиду записать так TIM1_CNTR - без младшего и старшего?

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

Так написали ж вам вариант с юнионом, и без юниона. Ещё раз:

uint16_t timerTicks = TIM1_CNTR_VAL;
TIM1_CNTRL = (uint8_t)timerTicks;
TIM1_CNTRH = (uint8_t)(timerTicks>>8);

 

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

9 часов назад, Евгений61 сказал:

А в 8-ми битном мк переменная int сколько будет занимать?

В МК вообще нет переменных. Переменная - объект компилятора.

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

В 16.04.2018 в 16:41, Евгений61 сказал:

А в 8-ми битном мк переменная int сколько будет занимать?

 

Во всех известных мне компиляторах - 2 байта. А вообще полезно перейти на специально заданные типы  (u)int[x]_t  (int16_t, uint8_t)

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

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

Вообще, зависит от платформы. В компиляторах для 32-ух битных платформ, размер int = 32 бита.
Лучше всего использовать типы short (16 бит), long (32 бита), ... . У них длина гарантирована.

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

а не правильнее будет использовать нечто типа int8_t например, если точно знаешь, что пишешь для встроенной системы? Ну и мне казалось что в новых стандартах С это даже рекомендовано, вместо всяких short long и very very long unsigned float ))

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

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

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

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

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

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

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

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

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

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

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

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

  • Сообщения

    • Привет кто это еще читает. Знакомый купил в Москве по адекватной цене пару  B615D, дал на диагностику перед уверенной эксплуатацией. Одна сразу в защите, большой динамик спален, усилители на высокоомную нагрузку поют, буду позже разбираться. А вот вроде бы вполне работоспособная не сдюжила и 10 минут на хорошей мощности на плотном прогрессиве. Вылетели ключи в БП и драйвера на MMBTA56. Видно что был в ремонте, возможно ключи оказались палёнкой. Есть мысль впаять вместо FQPF13N50  чуток помощней по току 18N50-e. По параметру Qg аналогичные, а по  Сg будут потяжелей, 2350пф против 1800 у 13н50-х. 
    • Ну так теперь фигня вопрос. Проверить, что кнопки невозможно замкнуть одновременно, да определить, на какой ток транзисторы нужны. По характеристикам мотора или по максимально-допустимому току диодов D1-D4. Навскидку, моторчик низковольтный, диоды тоже. Транзисторы тогда на PBSS4350 можно заменить. Они на Али почти задаром продаются.
    • Сами же понимаете, что так не может быть. Или нет "сквозняка", или схема неправильно собрана, элементы не те, битые и пр., и схема защиты не работает. Проверьте сначала работу защёлки защиты при питании от 15 В, отпаяв R19 и подавая туда медленно увеличивающееся напряжение до 1,5 - 2 В (можно с потенциометра ом на 100-500). Добейтесь, чтобы работала. Порог срабатывания измерьте. Пересчитайте в ток через резистор 0,1 Ом. Соответствует ли "правильному"? Проверьте, что у этого резистора сопротивление действительно 0,1 Ом. Запаяйте 0,1 Ом обратно. Напишите, какая лампочка. А то мало ли какая, может она не от "сквозняка", а от броска тока заряда С18 С16 мигает. Транзисторы ключей проверьте. Впаяйте вместо первичной трансформатора резистор ом 150 - 300, чтобы ток с ключей в этот "эквивалент трансформатора" не больше 50-100 мА был. Посмотрите форму напряжения на выходе ключей, в точке соединения С16 и С18, на питании после лампочки. Ищите, где ляп. Умозрительно подсказать можно только по каким-то измеренным данным. Кроме вас никто их не добудет. В общем, как в анекдоте: - Молодой человек, ну делайте же уже хоть что-нибудь!
    • Ну так можно увеличить глубину ООС, тем самым понизив чувствительность и повысив линейность
    • Судя по этой картинке   в трухе передней панели под выступающие болты и шишки паек ЗК динамиков выковыряныфрезерованы выемки, иначе бы динамики так плотно не прилегали бы к ДВП.    А оно тебе надо? "Работает - не мешай"(с)/это уже аксиома, не требующая доказательств/ , пытаясь сделать лучше, чем сделано на заводе. Сanton-ят, т.е. поют, и лучше, чем есть, тебе не сделать. Ну перенесёшь ты динамики наружу, а что тебе это даст? Кроме того, что при попытке их продать(а продавать их когда-нибудь придётся, т.к. эта акустика бюджетного сегмента без потуг на высший класс Hi-Fi) , тебе придётся объяснять потенциальному покупателю причину, по которой какой-то умник заколхозил такую переделку с акустикой, ты ничего хорошего не получишь. Задуманная тобой переделка - это по сути возня ради возни. 
    • Малыш, чушь пока здесь мелешь только ты. Сидел бы лучше в своей оффтопной теме, лепил бы на своём 3D-пинтере куколок, и не лез бы в те темы, в которых ты - ноль. 
  • Похожий контент

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