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

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


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

2 часа назад, Андрей Протаскин сказал:

как выглядит микросхема микроконтроллера Atmega8 изнутри?

atmega8.jpg

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

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

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

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

Только что, Андрей Протаскин сказал:

там химические вещества

Больше того скажу: там всякие атомы, электроны и кристаллы... ужос, короче.

Вы не пробовали книги читать? Все ведь описано...

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

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

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

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

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

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

03.05.2020 в 14:46, Vit@lik сказал:

В вольтметра цифра после запятой время от времени то увеличивается то уменьшается на единичку. То есть например
1.21 _1.20 _1.21_1.22_1.21...
Пробовал делать 5-10 измерений а потом искать среднее арифметическое
значительной разницы не заметил

напряжение гуляет. Либо то что на входе, либо опорное. Чтобы цифры быстро не мелькали среднее арифметическое к отдельной выборке применять бесполезно - нужно применять алгоритм "скользящего окна" при котором среднее считается на каждую выборку для N последних измеренных значений. Для этого нужно завести буффер где будут хранится эти N последних выборок... памяти в контроллере мало, но можете экспериментировать со значением N. Рекомендую кратное степени двойки - 8, 16, 32.... потом результат суммы делить проще будет. 

2 часа назад, Андрей Протаскин сказал:

@ARV так получается в микроконтроллере Atmega8 там химические вещества, да ещё несколько пластин?!

Если учесть что весь мир состоит из химии то это заурядное дело. Кремний там, частично легированный другими веществами, образуя полупроводниковые переходы. И потом это все соединено алюминиевыми шинами в многослойном исполнении. Причем полупроводники могут находится тоько в одном слое, а "этажерку" проводов можно довольно много слоёв сделать, это ограничение связано с технологией изготовления. Правда, последние 5 лет уже начали делать многослойные кристаллы - у современной FLASH-памяти может быть  до 32 активных слоёв полупроводниковых матриц. Таким образом, на одном "чипе" уже помещается 256Гб ячеек...Но изготовление их  довольно сложно и связано срядом физических ограничений, поэтому применение нашло сейчас только при производстве FLASH-памяти.

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

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

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

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

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

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

нужна ссылка или таблица всех библиотечных функций, переменных и тд. в с++. сам толкового не нашел, чтоб с кратким описанием было

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

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

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

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

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

Здравствуйте! Я просто спросить, почему программу для микронтроллеров надо писать с точностью до символов, и скелет программы, конфигурацию, и функции надо писать на английском языке, а не на русском, и в конце программы ставится точка с запятой? 

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

51 минуту назад, Андрей Протаскин сказал:

и в конце программы ставится точка с запятой? 

Не ставится.

51 минуту назад, Андрей Протаскин сказал:

Я просто спросить, почему...

Почему в русском языке предложение начинается с заглавной буквы, а завершается точкой или иным знаком препинания? Потому, что таковы ПРАВИЛА этого языка.

В языке программирования тоже есть правила, и это есть ответ на ваши вопросы.

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

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

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

@Дмитрий Вас , а вы посмотрели, что по каждой ошибке на самом деле в тексте программы (номер line)? Может при открытом редакторе кот по клавиатуре прошёл? :)

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

12 hours ago, Дмитрий Вас said:

не знаете в чем может быть причина?

Конечно, знаем. Причин может быть всего 2.

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

2. В настройки  и/или текст проекта внесены изменения, которые вызвали указанные Вами сообщения.  Вывод: надо прочесть сообщения и устранить указанные в них причины/ошибки.

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

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

multiple definition of означает, что функция или переменная определена в нескольких местах. В частности, tab_sin у вас оказалось в 4х файлах: encoder.c, lcd.c, main.c и PWM.c

Вангую, вы зафигачили этот массив (это же массив?) в заголовок, который приинклюдили ко всем этим файлам. Так делать нельзя! В заголовочном файле должны быть только ОПИСАНИЯ функций и переменых, но никак не их ОПРЕДЕЛЕНИЯ и/или РЕАЛИЗАЦИЯ!

 

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

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

1 минуту назад, ARV сказал:

В заголовочном файле должны быть только ОПИСАНИЯ функций и переменых, но никак не их ОПРЕДЕЛЕНИЯ и/или РЕАЛИЗАЦИЯ!

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

в PWM.h положу

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

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

void PSC0_sin_gen (void)
{
	
	for (unsigned int A=0;A<=161;A++)
	{
	PCNF0 |=(1<<PLOCK0); 
	//PCNF0 =(1<<PLOCK0)|(1<<PMODE01)|(0<<PMODE00)|(1<<PCLKSEL0)|(1<<POP0);//разрешается перезапись 
	OCR0RA = tab_sin[A];
	OCR0SA = 50;
	OCR0RB = 0;
	OCR0SB = 0;
	PCNF0 &= (0<<PLOCK0);
	//PCNF0 =(0<<PLOCK0)|(1<<PMODE01)|(0<<PMODE00)|(1<<PCLKSEL0)|(1<<POP0);//перезаписано
	if (A==161) A=0; 
	}
}

почему то эта часть кода не работает, проверьте орфографию

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

 

27.05.2020 в 21:37, Дмитрий Вас сказал:

пошел читать книжки

Делайте это, плиз, до того как задаёте вопросы на форуме <_<
Иначе на вопросы, типа :

Цитата

почему то эта часть кода не работает

Будете получать в ответ : "А почему она должна работать ?".

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

11 часов назад, Дмитрий Вас сказал:

PCNF0 &= (0<<PLOCK0);

Нет ли тут ошибки? &= обычно в битовых операциях используется с инвертированным значением битовой маски... т.е. так: PCNF0 &= ~(0<<PLOCK0);

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

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

@Alex согласен но как знать чего ты не знаешь

@ARV я хотел из этой строчки сделать

PCNF0 =(1<<PLOCK0)|(1<<PMODE01)|(0<<PMODE00)|(1<<PCLKSEL0)|(1<<POP0);

сделать вот эту

PCNF0 =(0<<PLOCK0)|(1<<PMODE01)|(0<<PMODE00)|(1<<PCLKSEL0)|(1<<POP0);

через побитовое И 

PCNF0 &= (0<<PLOCK0);

вот тут я мог и накосячить кстати

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

46 минут назад, Дмитрий Вас сказал:

я мог и накосячить кстати

Скорее всего, именно так и вышло.

Сдвиг нуля всегда даст в итоге НОЛЬ, как ни двигай. Поэтому у вас битовое И с нулем, т.е. PCNF0 станет равно 0.

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

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

в общем какие то странности. в моем мк когда пишу так 

OCR0RA=speed; //on-time
OCR0SA=50;//dead time

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

когда делаю так 

void PSC0_sin_gen (void)
{
	
	for (unsigned int A=0;A<=161;A++)
	{ 
	//PCNF0 = 0b;//разрешается перезапись 
	OCR0RA = tab_sin[A];
	OCR0SA = 50;
	OCR0RB = 0;
	OCR0SB = 0;
	//PCNF0 = 0b00010010;//перезаписано
	if (A==161) A=0; 
	}
}

ничего не происходит, сам массив

unsigned char tab_sin[161]=
   {0,2,3,5,7,8,10,12,13,15,
	17,18,20,22,23,25,26,28,30,31,
	33,34,36,38,39,41,42,44,46,47,
	49,50,52,53,55,56,58,59,61,62,
	63,65,66,68,69,71,72,73,75,76,
	77,79,80,81,82,84,85,86,87,89,
	90,91,92,93,94,95,97,98,99,100,
	101,102,103,104,105,106,107,107,108,109,
    110,109,108,107,107,106,105,104,103,102,
    101,100,99,98,97,95,94,93,92,91,
	90,89,87,86,85,84,82,81,80,79,
	77,76,75,73,72,71,69,68,66,65,
	63,62,61,59,58,56,55,53,52,50,
	49,47,46,44,42,41,39,38,36,34,
	33,31,30,28,26,25,23,22,20,18,
	17,15,13,12,10,8,7,5,3,2,0};

короче весь полупериод синусоиды 

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

Кажется, я вам уже говорил, что у вас какой-то странный подход... вам надо завести один из таймеров на какую-то частоту, и по прерыванию этого таймера обновлять только OCR0A, не трогая остальное, которое должно оставаться единожды настроенным всегда (если, конечно, мертвое время вы на лету менять не планируете. Для чего без малейших задержек в цикле менять значения OCR0A, которое активируется только по истечению периода очередного импульса ШИМ, я не понимаю.

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

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

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

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

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

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

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

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

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

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

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

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

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