Jump to content
admin

Видеокурс По Avr-Микроконтроллерам Для Начинающих

Recommended Posts

kobraz, в тридцать я только заимел книгу по МК51. Была нужда - изучил и ассемблер, и компиляторы... Нужда исчезла, желания не стало - все забросил и забыл. Теперь просто лень.

Так что, Вы правы - нет необходимости и есть отговорки (семья, работа, ...). Вот и ленимся. :(

Share this post


Link to post
Share on other sites

Приветствую!

Моя домашняя работа по LCD 5110 (он же 3310).

P.S. Спасибо за видеокурс! :yes:

// CPU = ATMega8A
#define F_CPU 8000000
#include <avr/io.h>
#include <stdlib.h>
#include <util/delay.h>
#include "n5110.h"
void startup()
{
Lcd_init();
Lcd_clear();
for (int i=1; i<=6; i++)
{
 Lcd_circle(8,24,i,PIXEL_ON);
}
Lcd_circle(78,24,5,PIXEL_ON);
Lcd_rect_empty(8,21,73,27,PIXEL_ON);
Lcd_line(20,18,20,30,PIXEL_ON);
Lcd_line(40,18,40,30,PIXEL_ON);
Lcd_line(60,18,60,30,PIXEL_ON);
Lcd_prints(4,1,FONT_1X,(unsigned char*)PSTR("Thermo"));
Lcd_prints(2,4,FONT_1X,(unsigned char*)PSTR("20"));
Lcd_prints(6,4,FONT_1X,(unsigned char*)PSTR("40"));
Lcd_prints(10,4,FONT_1X,(unsigned char*)PSTR("60"));
Lcd_update();
}
int main(void)
{
   startup();
while(1)
   {
 for (int i=21; i<=60; i++)
 {
  Lcd_rect(10,27,6,i,PIXEL_ON);
  Lcd_update();
  _delay_ms(50);
 }
   }
}

Share this post


Link to post
Share on other sites

в целом разделение на статику и динамику сделали правильно!

Мне вот интересно - почему все делают бегущий уровень прямоугольником а не линией? Добавляя по 1 к координатам У

Lcd_line(10, 20+i, 15, 20+i, PIXEL_ON)

?


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

Share this post


Link to post
Share on other sites

Металл-композит как альтернатива ферриту: дроссели Panasonic семейства ETQP

Современные электронные устройства требуют все более компактных и эффективных компонентов. Новые металл-композитные дроссели обладают рядом преимуществ перед дросселями с ферритовым сердечником. Они не имеют ярко выраженного насыщения, обладают отличными частотными свойствами и способны работать при температурах до 150°C и выше. Все это делает их альтернативой стандартным дросселям с ферритовым сердечником в широком спектре автомобильных и промышленных приложений.

Подробнее

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

Share this post


Link to post
Share on other sites
                     

Новые литиевые ХИТы Fanso работают даже при +150ºС!

Когда приходится учитывать работу в экстремальных условиях, к выбору электронных компонентов подходишь с особой тщательностью. Высокие температуры, большие перепады давления, труднодоступность – все это требует специальной продукции. Склад КОМПЭЛ пополнился новыми литиевыми ХИТами Fanso, стабильно работающими даже при температуре до 150 ºС. Батарейки имеют номинальное напряжение 3,6 В, обладают ёмкостью от 700 до 14000 мАч, работоспособны в широком температурном диапазоне -20…150ºС и имеют низкий саморазряд (не более 3% в год в нормальных условиях хранения).

Подробнее о высокотемпературной линейке

прочитал немного понял что это такое

но смущает использование много незнакомых слов для меня

Share this post


Link to post
Share on other sites

сидел только что разбирался как линиями сделать

очень умно в жизни бы не догадался

и хотел бы разобраться с этими { } скобами

так как понимаю ихнюю суть но не до конца как они работают

Share this post


Link to post
Share on other sites
void Test() //Функция Тест (в круглых скобках принимаемый параметр. Если в них пусто - ничего не принимаем)
{
//между скобками находится то что ета функция делает
}
Пример
void MyLine(int pozition_X, pozition_Y)
{
Lcd_clear();
Lcd_prints(pozition_X, pozition_Y, FONT_1X, (unsigned char*)PSTR("Hellow"))
Lcd_update();
}
Использование
MyLine(0, 1);
Очистит екран и выведет в первой строке надпись Hellow


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

Share this post


Link to post
Share on other sites

всем привет

чего такая тишина ?

наверное выходные :)

жду следующего ура

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

Share this post


Link to post
Share on other sites

Выполняю домашнее задание. Ошибка.

04_05_2014_17_31_08.jpg

Что делать?

P.S. Файл _mingw.h в папке include есть.

Edited by Tantrum

Share this post


Link to post
Share on other sites

В папке include есть и тот и тот уже. Но когда скачивал, был с черточкой.

Share this post


Link to post
Share on other sites

его надо прописывать в таких "" кавычках. можно даже полный путь "c:\bla-bla\file.h"

Share this post


Link to post
Share on other sites

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

А вот кавычки для своих библиотек таки надо использовать ""

Я кстати говорил об этом в видеоуроке!

Ну и до кучи!

Господа - отснял наконец-то заключительную часть видео уроков с теорией!

АЦП - Теория и практика!

Тема очень широкая, сложная и простая одновременно. Старался разложить по полочкам все нюансы.

Так что смотрите не спеша!

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

Одним словом - кто прошел все уроки и делал домашку - соберет устройство без проблем :)


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

Share this post


Link to post
Share on other sites

Да, только что досмотрел последние уроки.

А это домашнее задание еще самое первое.....

Вообще эта библиотека там нужна..? (mingw.h)

Edited by Tantrum

Share this post


Link to post
Share on other sites

Ошибка осталась...

Извините - но я не в курсе что это за библиотека и для чего она :(

Просмотрите начало видео урока по работе с ЛЦД - там подробно показано как работать с внешними библиотеками!

Сделайте все как надо и если ошибка останется выложите код и ошибку!

Edited by kobraz

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

Share this post


Link to post
Share on other sites

Вот полный код:

//Atmega8
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#include "mingw.h"
#include <time.h>
void preset(){
DDRB = 0xFF;
PORTB = 0x00;

DDRD = 0xFF;
PORTD = 0x00;

DDRC= 0xFF;
PORTC = 0x00;
}

int main(void){
preset();
srand(time(NULL));
int val = rand() % 2;
switch (val){
case 0:
PORTB = 0xFF;
_delay_ms(200);
PORTB = 0x00;
_delay_ms(200);
break;
case 1:
PORTC = 0xFF;
_delay_ms(200);
PORTC = 0x00;
_delay_ms(200);
break;
case 2:
PORTD = 0xFF;
_delay_ms(200);
PORTD = 0x00;
_delay_ms(200);
break;
}

while(1)
{

}
}

А ошибка полностью видна на скриншоте.

Оно начало выдавать эту ошибку после того, как я скачал и вписал в код библиотеку <time.h>

Edited by Tantrum

Share this post


Link to post
Share on other sites

тайм.аш если добавляли тоже кавычки меняйте

но вобще - по домашке - никаких сторонних библиотек качать ненужно

Edited by kobraz

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

Share this post


Link to post
Share on other sites

А как тогда сделать рандомное засвечивание светодиодов?

Share this post


Link to post
Share on other sites

rand() - встроенный.

Я об етом в уроке говорил.


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

Share this post


Link to post
Share on other sites

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

Код:

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

static int delay = 70;

void preset(){
DDRB = 0xFF;
PORTB = 0x00;

DDRD = 0xFF;
PORTD = 0x00;

DDRC= 0xFF;
PORTC = 0x00;
}

int main(void){
preset();

int temp = -1;

while(1)
{
int val = rand() % 3;
while(temp == val) {
val = rand() % 3;
}
temp = val;

switch (val){
case 0:
PORTB = 0xFF;
_delay_ms(delay);
PORTB = 0x00;
_delay_ms(delay);
break;
case 1:
PORTC = 0xFF;
_delay_ms(delay);
PORTC = 0x00;
_delay_ms(delay);
break;
case 2:
PORTD = 0xFF;
_delay_ms(delay);
PORTD = 0x00;
_delay_ms(delay);
break;
}
}
}

Edited by Tantrum

Share this post


Link to post
Share on other sites

если не сложно -отредактируйте свои посты, код в тег код и под спойлер

брат если подскажет:)


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

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 LemonTV
      Есть картинка из сайта с фьюзами, есть программа avrdude_prog3.3 Как выставить правильно фьюзы чтобы не испортить мк? Незнаю как это сделать есть прямые и инверсные фьюзы, ГДЕ СТАВИТЬ ГАЛОЧКИ И КРУЖОЧЕК НА ПРЯМЫХ ИЛИ ИНВЕРСНЫХ?


    • By dron92
      Подскажите как вернуть к жизни контролер или в утиль!
      Решил собрать программатор AVRISP mkII купил микросхему собрал подключил а устройств нет в диспетчере и  Flip не видит его!
      Начал искать косяки в сборке не нашел решил спаять Отладочная плату
      тот же результат, попробовал подключить через ISP не отвечает !
      Решил пойти на крайние меры  подключил через FuseDoctor сигнатуру он не видел вел 1e9482 вроде увидел но результата сбросить не проучилось но теперь он начал видится в таком формате фото внизу




    • By Sl653
      Доброй ночи. Продам Segnetics SMH4 новый в упаковке. 14 т.р. и УПП Siemens Sirius 3RW4036 29т.р. тоже новый. Если кого заинтересовало то пишите на почту sl.s@inbox.ru
       
       


    • By Jesterary
      Здравствуйте. Подскажите, был ли у кого-то опыт отправки изображений с камеры (подключенной через UART или bluetooth-камеры) через GPRS (у меня модуль SIM800L, но в целом это не принципиально) на удаленный сервер? Средствами управляющего микроконтроллера, пусть даже ардуины какой-нибудь, но не малины. Возможно ли это вообще? Хотелось бы, конечно, использовать в проекте беспроводную камеру и общаться с ней, ибо камеры, подключаемые напрямую так себе качество дают. 
      Сразу скажу, что важна именно такая связь. Микроконтроллер + модуль связи + камера находятся в коробке и путешествуют по городу, в это время человек сидя дома на диване может смотреть фото с этой камеры. Смартфон для моих целей не подойдет, суть именно в микроконтроллере с модулями.
      Если у кого-то такое получалось - поделитесь, пожалуйста :)
      А то нахожусь в некоторой прострации и даже не знаю, в какую сторону думать.
  • Сообщения

    • Лучше бы к какому нибудь электромонтеру обратиться. Здесь же все просто. +12 вольт питание есть? Если закоротить транзисторы светодиоды зажигаются? Все три транзистора сгореть не могли - значит разбирайтесь с схемой управления.
    • Доброго времяни суток . Может есть у кого tp2350b  ? Отзовитесь?
    • Свой код через Switch Case почему-то не работает. В отличие от ЕС11 код который выложен в сети, мой энкодер имеет иной алгоритм - см рисунок. Отличие в наличии одновременной смены фронтов/состояний.  Состояния 1-0 вообще не бывает. Думаю, нужно как-то задержками или делать опросы по таймеру. У меня просто в Loop опрашивается.  Верхние строки - вращение в одну сторону, нижние - в другую.
    • Итак, вы удивитесь, но проблема не в УВ, а в УМ. Частично удалось устранить пищание получилось путем введения цепочки коррекции между 2 и 4 выводом, но звук все равно оставляет желать лучшего
    • Кому-то операции хорошо приживаются, а кому-то только хуже делают, +штукатурка, +фотошоп....
    • Вы сами то читали эту недостатью? Мусор кликбейтный же.
    • Они и сейчас продаются, во всех магазинах для рукоделия (не путать с рукоблудием). СтОят, по прежнему, копейки. Но у проволочного нитковдевателя есть существенный недостаток - он настолько прост и очевидно эффективен, что очень сложно придумать лучшую альтернативу (и запилить об этом ролик на ютуб). 
×
×
  • Create New...