Jump to content
admin

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

Recommended Posts

попробуйте для начлаа без черточек! идите от простого к сложному!


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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

точка отсчета у него левый нижний угол. меняя координату етой точки меняем положение фигуры

пример

for (int i=0;i<5;i++)
{
Lcd_rect(10, 20+i, 5, 5, PIXEL_ON);
}


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

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Умный и безопасный дом от STMicroelectronics – строим вмеSTе!» (23.06.2021)

Приглашаем 23/06/2021 всех желающих принять участие в вебинаре, посвященном проектированию и разработке систем умного дома на базе компонентов STMicroelectronics. Экосистема продукции STMicroelectronics включает в себя как электронные компоненты, так и средства разработки, готовые стеки протоколов и законченные примеры кода. Предлагаемые ресурсы позволят разработчику легко построить каркас системы и быстро создать прототип своего приложения. На вебинаре также расскажем о беспроводных интерфейсах – ведь благодаря поддержке стандартов BLE и ZigBee разработчики смогут при необходимости интегрировать устройства сторонних производителей и создавать открытые системы.
Подробнее

попробовал ваш вариант и ничего не получилось буква( i )только добавляло пиксели к квадрату

но я нашёл свою ошибку не там поставил вот такую скобку { и всё заработало

спасибо за подсказку

Share this post


Link to post
Share on other sites

Тактовые кнопки Panasonic - высококачественная коммутация в миниатюрном исполнении

Panasonic, один из мировых лидеров по производству высококачественных электромеханических компонентов, и Компэл представляют масштабное расширение складской программы. В настоящее время на складе Компэл доступны ведущие серии SMD-тактовых переключателей Panasonic в миниатюрных корпусах. Линейка тактовых кнопок Panasonic отличается многообразием компактных переключателей различных типоразмеров, форм штока и выводов. Переключатели отвечают важнейшим требованиям в ответственных применениях.

Подробнее

Dimka_ibn_Mishka Что то у меня кирилица не работает

У меня такаеже фигня пробовал протеус 7.10 ; 7.7

пробовал русифициров и не русифицированную

обновлял библиотеку с русскими символами в протеусе не помогло

пробовал другие проекты с другими дисплеями РУССКИХ БУКВ НЕТ!

Вопрос остается открытым из-за чего такая фигня?

Share this post


Link to post
Share on other sites

Использование интеллектуальных силовых ключей PROFET в системах электропитания современных автомобилей

Современные автомобили, использующие полуавтоматизированные и автоматизированные системы вождения, отказываются от централизованных систем распределения питания в пользу децентрализованных. При этом современные системы контроля электропитания и обеспечения его безопасности требуют замены электромеханических коммутаторов и предохранителей на быстродействующие ключи на базе MOSFET со встроенными микроконтроллерами и возможностями диагностики – такие как предлагаемые компанией Infineon интеллектуальные силовые ключи PROFET.
Подробнее

Вопрос справедлив. Необходимо найти обще у вас и первого кто пожаловался!

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

Давайте начнем еще раз.

У кого ошибка с русским текстом - предоставьте следующие данные

OS:

Локаль/

Версия протеуса

Версия студии

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

echo ТЕСТ

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

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\

С

1250 REG_SZ c_1250.nls

1252 REG_SZ c_1252.nls

1253 REG_SZ c_1253.nls

НА

1250 REG_SZ c_1251.nls

1252 REG_SZ c_1251.nls

1253 REG_SZ c_1251.nls

Перезагрузите ПК и проверьте.

Edited by kobraz

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

Share this post


Link to post
Share on other sites

простите не очень силен в компьютерах но кажется вы имели в виду вот это

а что касается реестра то ключей я там таких не нашел в папке HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\ лежит еще несколько папок

post-180832-0-31064200-1398694007.jpg

post-180832-0-25502600-1398694020.jpg

Share this post


Link to post
Share on other sites

Посмотрите в CodePage

ОС: какая операционка?

Но судя по опыту у обоих авторов с проблемами кодировки стоит ХР - при чем не чистая, а какая-то сборка...

Пробуйте таки через реестр. Других идей пока нет.


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

Share this post


Link to post
Share on other sites

да нет у меня стоит 7 то что сборка не отрицаю ставил win7 максимальная а после обновления 1,5 года назад стала эта

((спасибо с нами возитесь другой бы послал давно))

Edited by ГИП_ПОТАМ

Share this post


Link to post
Share on other sites

Так ребят!

Я понял - тут мы щас разведем сады гоморы... давайте тему не будем забивать - кто не стремный ко мне в приват с тимвьввером - подключусь посмотрим. О решении отпишем!


коплю на мечту - Днепр К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 <stdlib.h>
//объявим  библиотеку
#include "n5110.h"
void presets(){
Lcd_init();
Lcd_clear();
Lcd_update();

}
int main(void)
{  
presets();
while(1)
   for (int i=0;i<27;i++)

  { Lcd_prints( 2, 1, FONT_1X, (unsigned char*)PSTR("40") );
   Lcd_prints( 2, 2, FONT_1X, (unsigned char*)PSTR("30") );
   Lcd_prints( 2, 3, FONT_1X, (unsigned char*)PSTR("20") );
   Lcd_prints( 2, 4, FONT_1X, (unsigned char*)PSTR("10") );
   Lcd_line( 29,  45,  29, 15, PIXEL_ON );
 Lcd_line( 35,  45,  35, 15, PIXEL_ON );
 Lcd_line( 35,  14,  25, 14, PIXEL_ON );
 Lcd_line( 29,  22,  25, 22, PIXEL_ON );
 Lcd_line( 29,  30,  25, 30, PIXEL_ON );
 Lcd_line( 29,  38,  25, 38, PIXEL_ON );

 Lcd_rect(30, 45, 5+i, 5, PIXEL_ON);
  _delay_ms(200);
  Lcd_update();


 }
}

теперь примерно правильно ?

и как зациклить подъём столбика ?

Share this post


Link to post
Share on other sites

Ну насколько я понял вы хотите что бы по кругу бегал уровень?

Если так то в самом простом для понимания случае можно сделать вот так

Хотя конечно есть множество более изящных решений

//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_clear();
  Lcd_prints( 2, 1, FONT_1X, (unsigned char*)PSTR("40") );
  Lcd_prints( 2, 2, FONT_1X, (unsigned char*)PSTR("30") );
  Lcd_prints( 2, 3, FONT_1X, (unsigned char*)PSTR("20") );
  Lcd_prints( 2, 4, FONT_1X, (unsigned char*)PSTR("10") );
  Lcd_line( 29,  45,  29, 15, PIXEL_ON );
  Lcd_line( 35,  45,  35, 15, PIXEL_ON );
  Lcd_line( 35,  14,  25, 14, PIXEL_ON );
  Lcd_line( 29,  22,  25, 22, PIXEL_ON );
  Lcd_line( 29,  30,  25, 30, PIXEL_ON );
  Lcd_line( 29,  38,  25, 38, PIXEL_ON );
  for (int i=0;i<27;i++)
   {
   Lcd_rect(30, 45, 5+i, 5, PIXEL_ON);
   _delay_ms(200);
   Lcd_update();
   }
  Lcd_update();
 }

}


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

Share this post


Link to post
Share on other sites

можно сказать что так

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

пака над этим работаю но без успешно

Share this post


Link to post
Share on other sites

после цикла который рисует прямоугольники - добавьте еще один но уже в обратную сторону и пихел_офф


коплю на мечту - Днепр К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 <stdlib.h>
//объявим  библиотеку
#include "n5110.h"
void presets(){
Lcd_init();
Lcd_clear();
Lcd_update();

}
int main(void)
{  
presets();
while(1)


  { Lcd_clear();
   Lcd_prints( 2, 1, FONT_1X, (unsigned char*)PSTR("40") );
   Lcd_prints( 2, 2, FONT_1X, (unsigned char*)PSTR("30") );
   Lcd_prints( 2, 3, FONT_1X, (unsigned char*)PSTR("20") );
   Lcd_prints( 2, 4, FONT_1X, (unsigned char*)PSTR("10") );
   Lcd_line( 29,  45,  29, 15, PIXEL_ON );
 Lcd_line( 35,  45,  35, 15, PIXEL_ON );
 Lcd_line( 35,  14,  25, 14, PIXEL_ON );
 Lcd_line( 29,  22,  25, 22, PIXEL_ON );
 Lcd_line( 29,  30,  25, 30, PIXEL_ON );
 Lcd_line( 29,  38,  25, 38, PIXEL_ON );
 for (int i=0;i<27;i++)
 {Lcd_rect(30, 45, 5+i, 5, PIXEL_ON);
  _delay_ms(200);
  Lcd_rect(30, 45, 30-i, 5, PIXEL_OFF);
  _delay_ms(200);
  Lcd_update();
  }


  Lcd_update();


}

}

но что то не работает

а когда в скобках пишу это задание то ошибку при компиляции пишет

с минусом I писать можно ??

Share this post


Link to post
Share on other sites

вы неправильно оперируете циклами.

даю подсказку

{Lcd_rect(30, 45, 5+i, 5, PIXEL_ON);//отправили в буфер нарисовать точку

_delay_ms(200);//подождали

Lcd_rect(30, 45, 30-i, 5, PIXEL_OFF); // отпраили в буфер - удалить точку

_delay_ms(200); //подождали

Lcd_update();//вывели то что получилось на екран

}

вам нужно два цикла первый отисовал - второй очистил/ первый нарастающий второй спадающий - и перестаньте угадывать! пробуйте думайте


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

Share this post


Link to post
Share on other sites

Если я правильно понял речь идет о дисплее 3310. Могу дать ссылку http://mcom.com.ua/t...ka?keyword=3310

А вообще лучше переходить на 1280, он еще дешевле и есть везде в продаже.

Edited by andryxa

Share this post


Link to post
Share on other sites

Разницы нет на каком учится, хоть на 6300. Принцип работы у всех одинаковый.

Share this post


Link to post
Share on other sites

согласен когда знаешь что делать то всегда кажется что это просто

я вот раньше вообще не занимался программирование

то есть чужие программы заливал в микрухи

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

хотя я понимаю что с меня не получится хорошего программиста

этому надо было учится с 20 лет или того раньше

как говорится дорога ложка к обеду :)

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

если хватит терпения учителя

Share this post


Link to post
Share on other sites

тут главное терпение ученика....

научиться можно чему угодно! Мне тоже не стать программистом. Я айтишник по професии а по документам повар кондитер! Немного програмлю на питоне! С - заставляет каждый раз сжимать зубы и хрустеть деснами. Но ето лутче чем крошить гранит науки пытаясь в 30 лет освоить асамблер. Ну и все зависит от того что вы хотите видеть в результате! Просто в таком возрасте учится быстро не получается не потому что старый - или поздно а потому что как правило уже есть работа жена дети собака - и на учебу остается только время из личного отдыха... как то так :)


коплю на мечту - Днепр К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 Михаил Карнаухов
      В общем, во встроенных библиотеках Proteus нет МК PIC12F635. И мне нужна какая-нибудь сторонняя библиотека, что бы там был этот МК
    • By Sergey Krugov
      Доброго времени суток дня и ночи!!! Я конечно понимаю, что за это время уже успел надоесть вам, но прошу откликнуться к просьбе о помощи. 
      Проблема заключается в следующем:

      В данной схеме используется Atmega8
      Фьюзы:

      При симуляции схемы происходит следующее:


      А дальше ничего не происходит. 
      Возникает также проблема такого рода: 

      Почему-то Протеус ругается на это,  но при удалении этой строки из кода в Протеусе, схема начинает вроде бы работать, но дальше setup на ЖКИ ничего не появлется. Очень прошу помочь понять, что не так. Мб на железе это всё бы и работало. Как разрешить эту проблему в программе?
      Я буду очень благодарен всем, кто откликнется на мою проблему. Надеюсь вы не оставите это без внимания. Очень надеюсь...
    • By Anton Chehonin
      Вот сам код программ
       
      Текст программы МК
      /*******************************************************
      Chip type : ATmega8
      Program type : Application
      AVR Core Clock frequency: 8,000000 MHz
      Memory model : Small
      External RAM size : 0
      Data Stack size : 256
      *******************************************************/

      #include <mega8.h>
      #include <delay.h>

      // Alphanumeric LCD functions
      #include <alcd.h>

      // Standard Input/Output functions
      #include <stdio.h>
      #include <stdlib.h>

      // Declareyourglobalvariableshere

      float s;
      unsigned long int k0=0,k1=0,k2=0,k3=0,k0123=0;
      unsigned long int k4=0,k5=0,k6=0,k7=0;//k4567=0;
      unsigned long int k8=0,k9=0,k10=0,k11=0;//k891011=0;
      unsigned long int k12=0,k13=0,k14=0,k15=0;//k12131415=0;
      unsigned long int k16=0,k17=0;
      char k=0;

      void main(void)
      {
      // Declare your local variables here

      char buffer[20];


      char a,b,c,d,e,f;
      // Присваивание переменным a,b,c численные значения 63 05 00 01 CF A1
      a=0b01100011;
      //63
      b=0b00000101;
      //05
      c=0b00000000;
      //00
      d=0b00000001;
      //01
      e=0b11001111;
      //CF
      f=0b10100001;
      //A1

      DDRD.2=1;
      PORTD.2=0;

      // USART initialization
      // Communication Parameters: 8 Data, 1 Stop, No Parity
      // USART Receiver: On
      // USART Transmitter: On
      // USART Mode: Asynchronous
      // USART Baud Rate: 9600
      UCSRA=(0«RXC) | (0«TXC) | (0«UDRE) | (0«FE) | (0«DOR) | (0«UPE) | (0«U2X) | (0«MPCM);
      UCSRB=(0«RXCIE) | (0«TXCIE) | (0«UDRIE) | (1«RXEN) | (1«TXEN) | (0«UCSZ2) | (0«RXB8) | (0«TXB8);
      UCSRC=(1«URSEL) | (0«UMSEL) | (0«UPM1) | (0«UPM0) | (0«USBS) | (1«UCSZ1) | (1«UCSZ0) | (0«UCPOL);
      UBRRH=0x00;
      UBRRL=0x33;


      // Alphanumeric LCD initialization
      // Connections are specified in the
      // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
      // RS - PORTС Bit 0
      // RD - PORTС Bit 1
      // EN - PORTС Bit 2
      // D4 - PORTС Bit 3
      // D5 - PORTС Bit 4
      // D6 - PORTС Bit 5
      // D7 - PORTD Bit 7
      // Characters/line: 20
      lcd_init(20);
      lcd_clear();
      delay_ms(1000);
      while (1)
      {
      printf("%c%c%c%c%c%c",a,b,c,d,e,f); // отправка в порт

      //принимаем байты
      k=getchar(); // 0 байт
      if (k==99) {PORTD.2=1;}
      k0=getchar(); // 1 байт Активная энергия+
      k1=getchar(); // 2 байт
      k2=getchar(); // 3 байт
      k3=getchar(); // 4 байт
      k4=getchar(); // 1 байт Активная энергия-
      k5=getchar();
      k6=getchar();
      k7=getchar();
      k8=getchar(); // 1 байт Реактивная энергия+
      k9=getchar();
      k10=getchar();
      k11=getchar();
      k12=getchar(); // 1 байт Реактивная энергия-
      k13=getchar();
      k14=getchar();
      k15=getchar();
      k16=getchar();
      k17=getchar(); // 19 байт


      k0=k0«24;
      k1=k1«16;
      k2=k2«8;
      k0123=k0|k1|k2|k3;


      s=k0123;
      sprintf(buffer,"A+=%.4fkWh",s/2500);
      lcd_gotoxy(0,0);
      lcd_puts(buffer);

      // k4=k4«24;
      // k5=k5«16;
      // k6=k6«8;
      // k4567=k4|k5|k6|k7;
      // s=k4567;
      // sprintf(buffer,"A-=%.4fkWh",s/2500);
      // lcd_gotoxy(0,1);
      // lcd_puts(buffer);
      //
      // k8=k8«24;
      // k9=k9«16;
      // k10=k10«8;
      // k891011=k8|k9|k10|k11;
      //
      //
      // s=k891011;
      // sprintf(buffer,"R+=%.4fkVarh",s/2500);
      // lcd_gotoxy(0,2);
      // lcd_puts(buffer);
      //
      //
      // k12=k12«24;
      // k13=k13«16;
      // k14=k14«8;
      // k12131415=k12|k13|k14|k15;
      // s=k12131415;
      // sprintf(buffer,"R-=%.4fkVarh",s/2500);
      // lcd_gotoxy(0,3);
      // lcd_puts(buffer);

      delay_ms(1000);
      lcd_clear();

      }
      }
    • By Daniil Mask
      Здравствуйте, не могу понять как сделать такую систему на базе электромоторчика.
      Принцип работы:
      Катушка с нитками установлена на электромоторчике.
      нитку легко можно разматывать руками, а моторчик держит эту нить под натяжением но так чтобы не рвал.
      Длина нити около 20 метров.
      и как только мы отпускаем нить она заматывалась обратно.
      все это должно быть максимально маленьким и потребляло мало электричества.
      Ну на сколько это возможно. 
×
×
  • Create New...