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

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


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

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

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

atmega8.jpg

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Реклама: АО КОМПЭЛ, ИНН: 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-памяти.

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

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

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

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

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

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

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 пользователей онлайн

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

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