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

Видеокурс по AVR-микроконтроллерам для начинающих


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

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

Я так понимаю, что третье нажатие кнопки приведет к исполнению этой строки, результатом которой будет отсутствие свечения светодиодов портов PB2, PB3 и загорится светодиод порта PB4. И будет гореть до 4 нажатия кнопки. В результате 4 нажатия выполнится по команде: if(v==4)v=0; переход на команду: if(v==0) PORTB.2 = 0; PORTB.3 = 0; PORTB.4 = 0; , которая должна погасить все светодиоды.

Благодарю за помощь. Только начал изучать.

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

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

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

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

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

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

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

Не могу избавиться от минусов для измерения температуры(по моему урок 8):

Вопрос снимаю нашел ошибку.

было for (int i=0;i<40;i++)
    {
        ADCSRA |=(1<<ADSC);
        while (ADCSRA &(1<<ADSC)){}
        tmp=tmp+ADC;
    }
    
    return tmp/40;

нужно for (int i=0;i<20;i++)
    {
        ADCSRA |=(1<<ADSC);
        while (ADCSRA &(1<<ADSC)){}
        tmp=tmp+ADC;
    }
    
    return tmp/20;

но не понимаю почему такая зависимость от числа измерений

 

 

 

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

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

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

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

6 часов назад, uuu000 сказал:

не понимаю почему такая зависимость от числа измерений

Ну, наверное потому, что tmp переполняется при 40 суммированиях, и не переполняется при 20.

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

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

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

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

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

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

  • 5 месяцев спустя...

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

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

Всем  привет, в этом видеоуроке когда мы делаем подключение кнопки в работу бегущей строки светодиод который подключен к выводу PORTB0  в режиме "с низу в верх"   не издает свечение, ошибка в коде? или с чем это связано. На видео находиться с 9:09 до 9:25.

Спасибо за внимание

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

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

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

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

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

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

Доброго времени суток, по шестому уроку вопрос. При подключении LCD дисплея у меня компилятор показывает ошибку

// ATmega8A

#include <avr/io.h>
#define F_CPU 8000000
#include "n5110.h"

void preset(){
    
 Lcd_init();
 Lcd_clear();
    
    
}

int main(void)
{
    preset();
    
    while(1)
    {
     Lcd_prints(0, 3, FONT_1X,(unsigned char *)PSTR("Hellow"));
     Lcd_prints(0, 3, FONT_1X,(unsigned char *)PSTR("Привет"));
     Lcd_update();
    
    
    
    }
Ошибка компилятора:

Error    1    undefined reference to `Lcd_init()'    E:\proect\Lessons\Les6\GccApplication6\GccApplication1\Debug/.././GccApplication1.cpp    9    1    GccApplication1
Error    2    undefined reference to `Lcd_clear()'    E:\proect\Lessons\Les6\GccApplication6\GccApplication1\Debug/.././GccApplication1.cpp    10    1    GccApplication1
Error    3    undefined reference to `Lcd_prints(unsigned char, unsigned char, LcdFontSize, unsigned char const*)'    E:\proect\Lessons\Les6\GccApplication6\GccApplication1\Debug/.././GccApplication1.cpp    21    1    GccApplication1
Error    4    undefined reference to `Lcd_prints(unsigned char, unsigned char, LcdFontSize, unsigned char const*)'    E:\proect\Lessons\Les6\GccApplication6\GccApplication1\Debug/.././GccApplication1.cpp    22    1    GccApplication1
Error    5    undefined reference to `Lcd_update()'    E:\proect\Lessons\Les6\GccApplication6\GccApplication1\Debug/.././GccApplication1.cpp    23    1    GccApplication1
 

 

При изменении #include "n5110.h" на #include "n5110.с" компилятор работает но тогда показывает такую ошибку. Я так понимаю что память перегружена но чем?(Если надо скрин могу кинуть)

Error    1            Program Memory Usage     :    6866 bytes   83,8 % Full
                Data Memory Usage         :    1054 bytes   102,9 % Full    (Memory Overflow)    GccApplication1    0    0    GccApplication1

 

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

  • 2 недели спустя...
12.01.2021 в 00:22, M83 сказал:

Доброго времени суток, по шестому уроку вопрос.

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

Мир не без добрых людей!

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

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

Делаю что-то похожее на ИК пульт. Использовал атмегу8 и 8МГц кварц. Настроил Таймер_2 в режим СТС. Настроил Таймер 2 на частоту 36кГц. И проверил осциллографом - все работает. 36кГц есть на порте.
Была у меня идея первый таймер использовать для генерации частоты а второй для того чтобы им первый включать и выключать с определенными задержками для создания "пакетов" данных. Но подумал немного и что-то мне стало жалко использовать аж целых два таймера только для одного этого задания. И решил попробовать сделать на одном таймере. Написал функцию которая посылает сначала стартовый длинный пакет импульсов, а потом берет массив в котором находятся 1 и 0 (код который нужно отправить), и в зависимости от того 1 или 0  отправляет пачки импульсов определенной длины добавляя задержки между ними. For и Loop не использовал чтобы процессор "не зависал" в прерывании на долго и успевал выполнять другие задачи.
Все сделано проверками IF и еще несколько статических переменных и там же в векторе ISR(TIMER0_OVF_vect) инвертирую порт.
Правильно ли я поступил?

На время разработки я запустил таймер_2 который генерирует несущую частоту 36кГц на постоянно. Но в дальнейшем когда программа будет закончена буду запускать его кнопкой только на время передачи импульсов и по он окончанию самостоятельно выключиться.


Таймер_2 работает на прямую от генератора 8МГц то есть - на частоте процессора.

void timer2_init () {
    TIMSK |= (1<<OCIE2); //Timer/Counter2 Output Compare Interrupt Enable
    //Разрешение прерывания по совпадению таймера/счетчика2
    TCCR2 |= (1<<CS20) | (1<< WGM21); // clkT2S/1024 (From prescaler) AND Clear Timer On Compare - CTC
    OCR2 = 110; // Output Compare Register – OCR2 continuously compared with the counter value (TCNT2)
}

 

А таймер 0 для других заданий так clkT2S/128 (From prescaler)

void timer0_init(){
	TIMSK |= (1<<TOIE0);
	TCCR0 |= (1<<CS00) | (1 << CS02) ;
	//TCNT0 = 60;
	//PORTD |= (1<<7);
}

 

Так вот код в OVF таймера _0 не выполняется когда запущен таймер_2

ISR(TIMER0_OVF_vect){
	//code
	//code
}

 

То есть если превысить некий лимит команд в прерывании таймера_2 то код в прерывании таймера_0 не выполняется.
Я все правильно понимаю?

Это потому что таймер_2 работает на частоте процессора и забирает все его время и производительность на себя?
И код в основном цикле тогда тоже не будет выполняться если таймер_0 будет все время прерываться с частотой тактирования процессора?

Если i < 11 таймер_0 не работает.  Если  i < 10 то еще работает.

ISR(TIMER2_COMP_vect){
	//fire_act();
	for(int i = 0; i < 11; i++){asm("nop");}
}//ISR

Я понимаю это так. Что время выполнения кода прерывания или равно или превышает время между вызовами этого же прерывания.
Правильно?

Screenshot_1.png

 

Только что заметил что ошибся с темой. А удалить сообщение уже нельзя ...

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

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

Я правильно понимаю, что в шестом уроке, где показывается использование LCD дисплеев 5110 или 3310 используется библиотека только конкретно для этих дисплеев. А допустим использование других дисплеев требует других библиотек.
1. Это верно?
Ещё вопросы:
2. Кто разрабатывает эти библиотеки? Производители дисплеев или это конкретно "труд радиолюбителя/разработчика"?
3. Если эти библиотеки разрабатывает производитель, тогда где их брать?
4. Использование других библиотек как-то влияет на процесс программирования, конкретно на код. Я имею в виду сам текст программы, а не подключаемые библиотеки.

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

5 часов назад, Юрий_Нд сказал:

2. Кто разрабатывает эти библиотеки?

Кому надо, тот и разрабатывает.
Вот мне сейчас босс велел поставить в устройство дисплей на основе ILI9488. Взял pdf на него, настроил регистры, вывел на экран закрашеный прямоугольник. Всё, основная часть работы сделана.
А дальше - как уж тебе самому надо. Знакогенератор напишешь, шрифты нарисуешь (или сконвертируешь).

А можно как адруинщики поступить. Взять готовую библиотеку (которую кто-то уже написал и не факт, что ей удобно пользоваться лично тебе), немного подшаманить, запустить, а потом бегать и спрашивать всех, как заставить выводить UTF-8 и прочие unicode символы.

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

18 часов назад, LiVit сказал:

босс велел поставить в устройство дисплей на основе ILI9488. Взял pdf на него, настроил регистры, вывел на экран закрашеный прямоугольник. Всё, основная часть работы сделана.

... случайно нашёл у себя дисплей LC1628.
Как думаете, реально найти для него библиотеку.
Или самому придётся "ваять"?
---
По поводу "ардуинщиков".
Я правильно понимаю, что "ардуинщики" отличаются от всей братии только тем, что им не нужно заниматься пайкой.
Всё железо они покупают, а уже дальше, что "ардуинщик", что другой радиолюбитель, сталкивается с теми же проблемами написания кода, прошивками и всё такое.
---
... насколько я понимаю, в этой теме железом не занимаются?
Подскажите пожалуйста, на этом форуме есть место/ раздел, где обучают "железу" по АВР.

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

17 минут назад, Юрий_Нд сказал:

раздел, где обучают

Вы не правильно понимаете, для чего существуют форумы. Никак не для обучения. Учиться вы должны сами. А форумы для советов, помощи в непонятных вопросах, консультациях. Поглумиться могут над очень уж тупыми вопросами. :)

 

21 минуту назад, Юрий_Нд сказал:

реально найти для него библиотеку

Ищите, никто за вас этим заниматься не будет.

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

28 минут назад, Юрий_Нд сказал:

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

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

Мудрость приходит вместе с импотенцией...

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

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

36 минут назад, andrusha152 сказал:

Вы не правильно понимаете, для чего существуют форумы.

Прошу прощения что неправильно выразился. 
Полностью могу подписаться под теми словами, в которых Вы говорите, для чего существуют форумы.

Постараюсь впредь более корректно выражаться.
-------------------------------------------------------------------------------------------------------------------------------------------------

33 минуты назад, Starichok сказал:

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

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

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

в даташитах на дисплеи.

Мудрость приходит вместе с импотенцией...

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

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

2 часа назад, Starichok сказал:

в даташитах на дисплеи.

Это понятно, но я имел в виду исключительно наш форум.
 Есть ли здесь где-то место, где исключительно обсуждаются вопросы создание библиотек для дисплеев?

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

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

 Доброй ночи Всем.
 Подскажите пожалуйста, почему в примере урока всё работает только с одной библиотекой, а мне необходимо подключать две библиотеки?
 И почему так сильно "забита" память, в отличие от примера?
Часто нажимал клавишу "Сохранить всё".
Может, поэтому память "забита"?
Но это рекомендовал автор, я так понял.
Спасибо ____________ Юрий.

п.с. undefined reference to "Lcd_init()"

1 - Обменник - 96.png

1 - Обменник - 95.png

1 - Обменник - 94.png

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

Как было-бы круто, если бы руководители нанимающие специалистов по электронике, вот таким вот образом пытались сделать что-то сами, а потом поняв, как это непросто, решали - "А, к чёрту, пойду в проститутки найму нормального специалиста и буду платить ему нормальные деньги".
Но нет. Практика показывает, что эти граждане считают что там всё просто. Взял буратину, накачал скетчей и вуаля - всё работает!

P.S. если что - у меня нормальный работодатель, понимающий.

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

3 часа назад, Юрий_Нд сказал:

Интересно, а Вы лично себя к какой группе специалистов причисляете?

А вам зачем? Нанять хотите? Не хватит денег.

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

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

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

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

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

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

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

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

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

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

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

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