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

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


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

Бр-р-р, что эта жуткая индусня должна делать?

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

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

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

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

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

 yaroslav.s ужос.

Вот это:

#define digit0 0xDE
#define digit1 0x90
#define digit2 0xCD
#define digit3 0xD9
#define digit4 0x93
#define digit5 0x5B
#define digit6 0x5F
#define digit7 0xD0
#define digit8 0xDF
#define digit9 0xDB

делаем массивом. Вот так:

uint8_t numbers[] = {0xDE, 0x90... }

к примеру нужно вывести 153.

uint8_t number;
uint8_t first_digit;
uint8_t second_digit;
uint8_t third_digit;

uint8_t volume = 153;

number = volume/100;
volume = volume%100;
first_digit = numbers[number];
number = volume/10;
volume = volume%10;
second_digit = numbers[number];
third_digit = numbers[volume];

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

PS: Вспомнилось видел на стек оверфлов такую штуку, наверно ребята просто шутили над кем то:

char increment_Number(char number)
{
	if (number == 0) return 1;
	if (number == 1) return 2;
	if (number == 2) return 3;
	if (number == 3) return 4;
	if (number == 4) return 5;
	....
}

 

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

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

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

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

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

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

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

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

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

21 час назад, yaroslav.s сказал:

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

Можете не прописывать, я предложил более быстрый вариант получения результата по формуле (предварительные расчёты можно провести в Excel).
Можно пойти другим путём написать функцию расчёта дБ (исключив работу с дробями):

signed int get_dB(unsigned char N)
{
   return(315-(5*(255-N)));
}

на выходе для N=0 получите dB = -960 и дальше выводите значение на индикатор, с учётом, что запятую нужно сместить влево на один разряд, т.е. "-96,0" (для N=1 dB=-955 на индикаторе "-95,5")

Обычно полученное значение помещается в буфер (массив), у вас на 4 знакоместа, лучше в буфер помещать преобразованный код

#define SEG_A       (1<<0)
#define SEG_B       (1<<1)
#define SEG_C       (1<<2)
#define SEG_D       (1<<3)
#define SEG_E       (1<<4)
#define SEG_F       (1<<5)
#define SEG_G       (1<<6)
#define SEG_P       (1<<7)

// Таблица перекодироки для отображения цифр
static const uint8_t __flash TableLED_7Seg_Digit[] = 
{
    ( SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F ),          // 0
    ( SEG_B | SEG_C ),                                          // 1
    ( SEG_A | SEG_B | SEG_G | SEG_E | SEG_D ),                  // 2
    ( SEG_A | SEG_B | SEG_C | SEG_D | SEG_G),                   // 3
    ( SEG_B | SEG_C | SEG_F | SEG_G ),                          // 4
    ( SEG_A | SEG_C | SEG_D | SEG_F | SEG_G ),                  // 5
    ( SEG_A | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G ),          // 6
    ( SEG_A | SEG_B | SEG_C ),                                  // 7
    ( SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G ),  // 8
    ( SEG_A | SEG_B | SEG_C | SEG_D | SEG_F | SEG_G )           // 9
};

static inline uint8_t GetLEDDigit(uint8_t value)
{
    return(TableLED_7Seg_Digit[value]);
}

как у вас реализован вывод на 7-сегментники не знаю, схемы нет

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

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

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

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

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

Ужас... для преобразования числа в символы для вывода есть процедуры называемые BIN2BCD они раскладывают число на входе в BCD-представление числа, где каждая тетрада байта предсталяет собой цифру.

Например, десятичное число 4928 будет преобразовано в 0x4928 и выводите на индикатор его как 16-ричное число, преобразуя каждые 4 бита по таблице в сегменты.

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

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

  • 2 недели спустя...

Нет, с буквой "Т" это OTP модификация - одноразовые чипы.

st62.png

Изменено пользователем Dr. West

"Я не знаю какой там коэффициент, я просто паять умею. "

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

Ос виндовс10. Пони прог ничего не увидела. Сина прог определила программатор stk500v1 но с проблемой подклюяения, хотя на свистульке написанно usbasp и такие же дрова поставил и комп его также определяет. Как быть?

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

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

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

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

Странно... вроде на каждом углу валяется. Если дело не безнадёжно, то достаточно подать на контроллер внешнюю тактовую частоту в 1Мгц и прошить на низкой скорости. Но к сожалению, у разных Мег есть свои ERRATA и существуют "смертельные" комбинации фузов которые делают её одноразовой, без полной невозможности её восстановить. Если, конечно, у вас нет электронного микроскопа которым можно "обнулить" ячейки в которых содержится конфигурация.

А, да.... гугли FuseBit Doctor

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

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

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

Подскажите почему блокируется ATMega8535? Фьюзы ставлю High Fuse D9   Low Fuse AE. Больше ничего не трогаю. После чего МК не определяется. Прошиваю USBasp в SinaProg. МК в TQFP44 корпусе, прошиваю подпаяв провода к соответствующим ножкам(1,2,3,4,5,6). Прошиваю для HVProg.

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

  • 2 недели спустя...

Объясните, пожалуйста. Тинька13, увожу спать в power down, при этом не отключаю АЦП - почти 0,5 mА. Если перед сном отключить АЦП - 2 uA. 
Разве в power down вся переферия сама не отключается?

 


	MCUCR |= (1 << SE) | (1 << SM1); // sleep enable, power down mode

 

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

5 минут назад, Tokes сказал:

Разве в power down вся переферия сама не отключается?

не отключается

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Про power down в даташите пишут "This sleep mode halts all generated clocks". Если клок отключается - что тогда жрёт энергию в контроллере при включённом АЦП во время сна?

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

Аналоговая схема и жрет. Еще и компаратор аналоговый жрет, т.к. он по умолчанию включен после сброса.

Порты тоже могут жрать, если оставлены в режиме аналоговых входов.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

  • 2 недели спустя...

Здравствуйте. Не кидайтесь тапками:rolleyes:. Имеется Pickit3 китайский и готовые .hex файлы для заливки. Pickit3 подцеплял к ноутбуку, он в диспетчере устройств установился и определяется. Но программу к нему как я понимаю нужно скачивать отдельно? Как вообще залить готовый хекс через пиккит3 в микросхему? МК Pic12f675, панелька к программатору, куда вставляются МК, имеется, в комплекте шла с прогером. Подскажите пожалуйста по этим вопросам, можно даже как для тупого. Или источники, где почитать можно насчет этого всего(программирования МК). Самоучитель Корабельникова поглощать уже начал, писать программы думаю начинать на языке ассемблера. (имеется еще какой-то самоучитель от Носова, по-более нравится стиль написания)

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

Самоучитель Корабельникова немедленно выбросьте. Более глупого и безграмотного чтива даже трудно себе представить.

Для использования пиккита3 есть ТРИ варианта ПО:

1. старая оболочка программатора - довольно глючная, но весьма простая

2. MPLAB IPE - новая универсальная оболочка работающая с разными программаторами Микрочипа и с пиккит3 в том числе

3. среда разработки MPLAB IDE (MPLAB 8  или MPLABX) в которой так же можно программировать.

Все это можно скачать с сайта microchip.com совершенно бесплатно.

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

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

Про Корабельникова- ладно, выброшу. Уже не раз видел крайне негативные про него отзывы. Заставили скачать другие, хорошие, про него отзывы. Буду читать Носова, все равно он больше по вкусу пришелся.

Скачал MPLAB 8.91, с неоф.сайта, ибо на оф регистрацию требует, а мне немного это лень было. Да и программа установилась и запустилась нормально, значит проблемы быть с этим и не должно

Как подружить пиккит3 и мплаб уже где-то видел, да и самоучители по ассемблеру в основном с мплабом и работают, думаю дальше разберусь. Благодарю

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

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

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

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

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

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

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

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

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

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

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

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