Jump to content
admin

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

Recommended Posts

Запросто!

Вы не смотрели урок.

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


коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

а у меня всё получилось :dance2:

что я только не писал

и на русском и на английском и цифры

огромное спасибо за уроки

ждём продолжения

Share this post


Link to post
Share on other sites

Доброго время суток)

как я понял по видео вы запускаете дисплей без согласование уровней

просто подаёте на мегу 3.3вольта и все?

Share this post


Link to post
Share on other sites

Новые контролллеры VIPerPLUS - практический вебинар 10 июня от ST

В программе вебинара - новые контроллеры VIPerPlus, расширяющие границы применения этих компонентов. Обзор их характеристик и преимуществ. Практика. Демонстрация испытаний из лаборатории ST. Пример моделирования в среде E-DesignSuite.

Зарегистрироваться

Хм. А вы часом протеус не русифицировали ? Только что проверил на другом пк. Оба компьютера у меня windows 8 x64

Одна ОС русская с русской локалью вторая английская с английской локалью!

Протеус 7.10 - не русифицированный!

Все четко!

Давайте еще данных - проблема у вас локальная но не очевидная. Будем разбираться!

Каких?

Share this post


Link to post
Share on other sites
                     

Технология SOI против паразитных эффектов в драйверах затвора

Микросхемы драйверов затвора силовых транзисторов, изготавливаемые по технологии монолитного кремния, подвержены негативному влиянию отрицательных напряжений, возникающих на опорном выводе для верхнего плеча. Технология «Кремний-на-изоляторе» (Silicon-on-insulator, SOI) является надежным решением этой проблемы, о чем свидетельствуют результаты испытаний трех микросхем драйверов затвора полумостовой схемы, в том числе – SOI-драйвера производства Infineon.

Читать статью

пытаюсь заставить мигать надписи вот это библиотекой

#include <util/delay.h>

один раз перемигиват и всё

может я не тем пользуюсь ?

Share this post


Link to post
Share on other sites

вот что я навоял явно что то не так

//ATmega8a
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>

#include "n5110.h"

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


int main(void)
{presets();
while(1)
{  _delay_ms(1000);
	  Lcd_prints(2, 1, FONT_1X,(unsigned char*)PSTR("ATmega8a"));
	Lcd_prints(3, 3, FONT_1X,(unsigned char*)PSTR("8000000"));
	Lcd_prints(2, 2, FONT_1X,(unsigned char*)PSTR("пробы"));
	Lcd_prints(4, 4, FONT_1X,(unsigned char*)PSTR("заставить"));
	Lcd_prints(5, 5, FONT_1X,(unsigned char*)PSTR("мигать "));


	Lcd_update();

Edited by admin

Share this post


Link to post
Share on other sites

у вас в цикле не очищается экран

попробуйте такую конструкцию

lcd_clear();
_delay_ms(1000);
Lcd_prints(2, 1, FONT_1X,(unsigned char*)PSTR("ATmega8a"));
_delay_ms(1000);

Edited by admin

коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

вы уж извините что я отвлекаю всякими мелочами

но хочется разобраться

вот так я сделал но результат тот же

//ATmega8a
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>

#include "n5110.h"

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


int main(void)
{presets();
while(1)
{	 Lcd_clear();
	_delay_ms(1000);
	Lcd_prints(2, 1, FONT_1X,(unsigned char*)PSTR("ATmega8a"));
	_delay_ms(1000);

	Lcd_update();

Edited by admin

Share this post


Link to post
Share on other sites
//Atmega8A - используемый микроконтроллер
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
//объявим библиотеку
#include "n5110.h"

int main(void)
{
//Инициализируем дисплей
Lcd_init();
//объявим переменные
while(1)
{
Lcd_clear();
Lcd_update();
_delay_ms(1000);
Lcd_prints(2, 1, FONT_1X,(unsigned char*)PSTR("ATmega8a"));
Lcd_update();
_delay_ms(1000);

}
}

Edited by kobraz

коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

спасибо я понял что я не так делал

я не использовал вот эту библиотек

#include <stdlib.h>

а ещё вопрос а как делается бегущая строка ?

Share this post


Link to post
Share on other sites

неправильно! Дело не в библиотеке!

Внимательно посмотрите на код!

Я бы мог просто вам сказать в чем ошибка - но хочу что бы вы пришли к этому самостоятельно


коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

я правелно понял

Lcd_clear();вот этим я чищу экран

Lcd_update();вот это обнавляет

_delay_ms(1000);это время обнавления

Lcd_prints(2, 1, FONT_1X,(unsigned char*)PSTR("ATmega8a"));это вывод букв

Lcd_update();это опять обнавляет

_delay_ms(1000);это время удаление

и опять по кругу

Share this post


Link to post
Share on other sites

Lcd_clear(); // очищает буфер
Lcd_update(); //Выводи данные из буфера  на экран 
_delay_ms(1000);// пауза между выполнением предыдущей и следующей строки
Lcd_prints(2, 1, FONT_1X,(unsigned char*)PSTR("ATmega8a"));//Передает данные в буфер
Lcd_update(); //Выводи данные из буфера  на экран 
_delay_ms(1000);// пауза перед выполнением и следующей строки

Готова "Практика" по видео уроку работы с LCD.


коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

Lcd_clear(); // очищает буфер

это я понимаю

Lcd_update(); //Выводи данные из буфера на экран

вот тут непонятно чтож мы выводим если там ничего нету

или в этом и фишка что экран пустой?

_delay_ms(1000);// пауза между выполнением предыдущей и следующей строки

это понятнопауза

Lcd_prints(2, 1, FONT_1X,(unsigned char*)PSTR("ATmega8a"));//Передает данные в буфер

Lcd_update(); //Выводи данные из буфера на экран

_delay_ms(1000);// пауза перед выполнением и следующей строки

и это тоже всё понятно

Share this post


Link to post
Share on other sites

Посмотрите урок без перемотки :)

Edited by kobraz

коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

хочу спросить экран такого типа pcd8544 можно заменить вместо nokia3310

просто в магазинах там где я живу нету в наличии nokia3310

а хочется поэкспериментировать в реальной схеме

Share this post


Link to post
Share on other sites

Я заказывал на ебее. стоимость 2.5 у.е. доставка бесплатная ждать 3 недели.


коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

вот навоял

с утра пробую вот на цифра запара не знаю что делать

с каждым разом цифра добавляется

уж и сложная работа программиста :heat:

//Atmega8A - используемый микроконтроллер
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
//объявим  библиотеку
#include "n5110.h"
void presets(){
Lcd_init();
Lcd_clear();
Lcd_update();

}
int main(void)
{  
presets();
while(1)
{   Lcd_line(36,16,36,45,PIXEL_ON);
	Lcd_line(42,16,42,45,PIXEL_ON);
	Lcd_line(36,16,42,16,PIXEL_ON);
	Lcd_line(29,16,36,16,PIXEL_ON);
	Lcd_line(29,23,36,23,PIXEL_ON);
	Lcd_line(29,30,36,30,PIXEL_ON);
	Lcd_line(29,37,36,37,PIXEL_ON);
	Lcd_print	 ( 10,  10,  FONT_1X, (unsigned char*) "10" );
	Lcd_update();
	Lcd_rect(37, 45,7, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,9, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,11, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,13, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,15, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,17, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,19, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,21, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,23, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,25, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,27, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 45,30, 5, PIXEL_ON);
	_delay_ms(200);
	Lcd_update();

	Lcd_rect(37, 18,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 20,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 22,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 24,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 26,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 28,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 30,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 32,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 34,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 36,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 38,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 40,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 42,2, 5, PIXEL_OFF);
	_delay_ms(200);
	Lcd_update();
	Lcd_rect(37, 44,2, 5, PIXEL_OFF);
	_delay_ms(200);







}

понятное дело что это всё можно намного меньше написать

но я в силу своего интеллекта пака не в курсах как это делать

Edited by admin
Тэг CODE для кого придумали? Уже надоело за вами посты править

Share this post


Link to post
Share on other sites

Изменено: admin, Сегодня, 18:05

Тэг CODE для кого придумали? Уже надоело за вами посты править

извиняюсь за причинённое неудобство

как мне больше не повторять своих ошибок ?

Share this post


Link to post
Share on other sites

В видеоуроке - при помощи цикла for мы рисовали круг - примените тот же принцип для отрисовки линии или точки.

Ну и еще не совсем понятно что у вас получилось -чего вы хотели и что не получилось!

Когда добавляете код - в редакторе есть для этого тег ( кнопочка "<>")

Кроме того по коду видно что вы сначла рисуете прямоугольник - потом его затираете.

Почему вы не используете для этих целей PIXEL_XOR

Это уже не первый вопрос заданный вами ответ на который есть в видеоуроках.

Может Вы всетаки наберетесь терпения и просмотрите их?

Но за старания конечно +

Edited by kobraz

коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

цифру я пака просто прилепил для того чтоб увидеть где она расположится при на писаных координатах

а потом я хотел их черточкам поставить

за каждый цыкал цифра 10 добавлялась

я уроки смотрю по нескольку раз и если пользуюсь перемоткой только назад чтоб повторить что не дошло до мозга :)

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

  • Similar Content

    • By SAYMPR
      Друзья ! Нужна помощь,есть схема бортового устройства в протеусе,так же и программа на С.Не получается  программу связать со схемой.Помогите пожалуйста!
      Протеус принимается только асемблер,а мне нужен С.

    • By ARV
      Вот такая плата была когда-то давно разработана и изготовлена... Но ни разу не включалась, не проверялась и не налаживалась.
      Схема с перечнем сохранилась только на бумаге.
      Схема предназначалась для изучения/освоения микроконтроллера AT90PWM3 и CAN, использование их для управления трехфазным инвертором. 
      На плате установлены:
      микроконтроллер AT90PWM3-16SQ в типовой обвязке с кварцем; внешний CAN-контроллер MCP2510-I/SO; драйвер CAN-шины MCP2551-I/SN; регистр SN74HC597 для ввода 8 дискретных сигналов; 4 оптрона ILD74 для развязки дискретных сигналов; Операционный усилитель AD824AR для аналоговых сигналов, подаваемых на МК; элементы N74AHCT86D для возможности инвертирования выходных сигналов (при помощи перемычек) буфер SN74AC244DWR для умощнения выходных сигналов; преобразователь питания ИРБИС МПА10А (входное напряжение 9...18В); необходимая обвязка, включая восстанавливаемый предохранитель, кварц, защитные диоды на входах и т.п. На плате много контрольных точек, есть технологические перемычки. Схема оттрассирована в расчете на то, что МК формирует 3 двуполярных ШИМ-сигнала (т.е. всего 6 ШИМ-ов для верхних и нижних ключей отдельно)  возможностью индивидуально проинвертировать каждый (т.к. драйверы IGBT могут иметь как прямые, так и инверсные входы). 4 аналоговых сигнала с датчиков тока или напряжения поступают в МК для реализации ОС и защит. Управление ведется по CAN и с помощью 8 дискретных сигналов.
      Больше подробностей вспомнить не могу...
      Плата, как видите, даже не мылась от канифоли - так и пролежала 10 лет... Паялась профессиональнми монтажниками вручную, трассировалась тоже, но за качество, увы, не порчусь головой...
      Думаю, плата может быть хорошей основой для самодельного инвертора или как экспериментальная основа для изучения микроконтроллера, CAN-контроллера и шины, а так же вообще для всяких поделок. 
      Отправлю почтой РФ комплект: 
      Схема - 1 лист А1 эскиз размещения компонентов на плате - 1 лист А4 (немного поврежден, но читаем) перечень компонентов - 2 листа А4 эскиз печатной платы - 1/2 листа А4 плата в сборе дополнительный контролер AT90PWM3B (на плате распаян другой - AT90PWM3) Цена 3000 рублей, доставка отдельно. Бонусом могу добавить дополнительный CAN-контроллер и CAN-драйвер.
    • By WetCrow
      Добрый день!

      Пытаюсь настроить на Atmega8 Asynchronous Clock. Цель -- сделать часы.
      По задумке, мк работает на частоте 1МГц (фьюзы не трогаю, оставляю заводские значения), к пинам TOSC1/TOSK2 подключается кварц на 32.768 кГц, а Timer2 настраивается таким образом, что генерирует прерывания один раз в секунду.
      Вот, что я делаю:
      ASSR |= 1 << AS2; TCCR2 = 0b00000101; TIMSK |= 1 << TOIE2; sei();
      Нужно ли подключать кварц с конденсаторами, или без -- не понял. В даташите информации не нашёл. Пробовал и так, и эдак -- разницы не заметил.
      Что получилось:
      В Протеусе всё вроде работает правильно, однако, даже если отсоединить кварц, это ни на что не влияет. На макетной плате схема работает раза в 1.5 быстрее, чем нужно; опять таки, отсоединение кварца ничего не меняет. В чём я ошибаюсь, чего не учитываю?

      К сообщению прикладываю файл прошивки и протеуса.
      Примечания:
      в Протеусе сделал имитацию дисплея на светодиодах, так как встроенный вариант не работал корректно. Для того, чтоб цифры мигали медленнее, можно раскомментировать строку "#define DEBUG_BLINKING" -- иначе в протеусе не рассмотреть, что получается. Пишу на C++ под avr-g++, впрочем, никаких фишек языка не использую. clock.cpp clock_build_with_LEDs.pdsprj
    • By MirVsem
      Добрый день.
      Есть интересные модули ибп для слаботочки до 1А.
      m.aliexpress.ru/item/4000109380893.html
       По цене идеально подходит для зоопарка роутеров, IoT устройств... Переключение на резерв (туда-обратно) без просадки. Зарядка литиевой банки как положено, всякие защиты от перегрузки и прочее. Казалось бы все замечательно. 
      НО как всегда не без ложки дёгтя.
       Защита от переразрядки работает неадекватно. Хотя возможно это не сама защита, а повышающий модуль. На пороге ~3в у него срабатывает циклический перезапуск и так пока банка не просядет ниже 3в. Точно померять нечем.
      Из наблюдений. Проверил напряжение переключается с 12в на 9в и щелчки. Естественно нагрузка в это время дико насилуется (роутер свистит минут 5 пока полностю не отключится)
      Вопрос к гуру. Возможно ли что-то доработать в даном модуле чтобы исправить этот досадный баг?
    • By Юлия Михайлова
      Требуються люди умеющие работать с микроконтролерами esp 32 и stm32 , так же будет плюсом опыт работы с raspberry , требования опыт работы не мение 1,5 года , возраст не старше 35 лет , готовы взять на удаленную работу просьба отправлять резюме , и звонить по номеру +380 (68) 227 82 52
×
×
  • Create New...