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

Grampus

Members
  • Постов

    29
  • Зарегистрирован

  • Посещение

Информация

  • Пол
    Мужчина

Электроника

  • Стаж в электронике
    Менее года

Посетители профиля

1 169 просмотров профиля

Достижения Grampus

Новобранец

Новобранец (2/14)

  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

1

Репутация

  1. Добрый день! я до сих пор воюю с дисплеем WEX025664CLPP3N00000, в сети нашел описание подключения к AVR МК, с помощью библиотеки U8glib. Подскажите пожалуйста могу ли я использовать эту библиотеку для STM32. Я не умею подключать сторонние библиотеки! (((
  2. Господа благодарю всех, в общем сделал так : void spi_write ( uint8_t d, uint8_t OLED_DATA) { if(d==1) GPIOB->BSRR |= GPIO_BSRR_BS_8; // установили пин в 1 - передаем данные if(d==0) GPIOB->BSRR |= GPIO_BSRR_BR_8; // установили пин в 0 - передаем команду HAL_SPI_Transmit_DMA (&hspi1, OLED_DATA_i, sizeof(OLED_DATA)); // передаем по spi OLED_DATA_i [0] = OLED_DATA; }
  3. WEX025664BLPP3N00000 дисплей SSD1322 контроллер дисплея
  4. да, но мне нужно ( если я правильно понял) дисплею по СПАй сказать это команда или данные и потом еще байт отправить! просто байт данных могу отправить, а нужно одновременно отправить CMD или DTA и байт т.е. всю функцию отправить в СПАй.
  5. Вот фрагмент кода /** инициализация таблицы градаций яркости */ static void lcd_set_gray_scale(void) { unsigned char cnt = 0; unsigned char step = 0x0C; unsigned char max_step = 0xB4; spi_write(CMD, 0xB8); /** таблица градаций яркости */ for (cnt = step; cnt <= max_step; cnt += step) spi_write(DTA, cnt); spi_write(CMD, 0x00); /** разрешить работу таблицы градаций яркости */ } static void lcd_set_col(unsigned char start, unsigned char end) { spi_write(CMD, 0x15); /** Set Column Address */ spi_write(DTA, start); /** начальный адрес */ spi_write(DTA, end); /** конечный адрес */ } static void lcd_set_row(unsigned char start, unsigned char end) { spi_write(CMD, 0x75); /** Set Row Address */ spi_write(DTA, start); /** начальный адрес */ spi_write(DTA, end); /** конечный адрес */ } static void lcd_set_start_line(unsigned char start) { spi_write(CMD, 0xA1); spi_write(DTA, start); } static void lcd_set_wr_ram(void) { spi_write(CMD, 0x5C); /** Разрешает микроконтроллеру записать данные в RAM */ } static void lcd_current_control(unsigned char val) { spi_write(CMD, 0xC7); // Master Contrast Current Control spi_write(DTA, (val > 0x0F) ? 0x0F : val); } /** очистка дисплея */ static void lcd_clr(void) { unsigned int i = 0, j = 0; lcd_set_col(0x1C, 0x5B); /** 112 SEG до 367 SEG = 112 SEG / 4 до 367 SEG / 4 = 0x1C - 0x5B */ lcd_set_row(0x00, 0x3F); for (i = 0; i < 64; i++) { lcd_set_wr_ram(); for (j = 0; j < 128; j++) spi_write(DTA, 0x00); } } но тут тоже только функция есть а описание нету.
  6. Grampus

    Передача по SPI

    Добрый день! ПОМОГИТЕ ПОЖАЛУЙСТА! в описании для одного дисплея нашел код для STM на СИ там есть строчка которая мне не понятна, точнее смысл ее понятен но нет объявления аргументов функции помогите пожалуйста. В общем ситуация такая spi_write ( DTA, 0x00 ) spi_write ( CMD, 0x01) вот эта функция DTA - выполняет установку пина в 1 , CMD - выполняет установку пина в 0 0x00 , 0x01, .........0xFF это либо данные либо команда. и все бы ничего но все это нужно передать по HAL_SPI_Transmit помогите написать эту функцию с описанием аргументов и всех действий.
  7. Grampus

    ПЛК+RS485+Atmega

    Добрый день, прошу помочь со схемой, хочу собрать прибор для приема команды с ПЛК по RS485 и выполнения команды МК Atmega8/ Я так понимаю мне нужны будут 2 микросхемы MAX485 ??? Кто понимает поясните функциональную схему.
  8. Добрый день! подскажите пожалуйста где то есть курсы повышения квалификации по схемотехнике или курсы для начинающих по схемотехнике и электронике! Может на форуме есть преподаватели таких курсов! Буду признателен!
  9. Господа подскажите пожалуйста где найти описание этой строки __interrupt void TIMER1_interrupt (void)
  10. Grampus

    Массив

    Добрый день господа. Инициализировал массив: const unsignet char DATA [ ] {0x3F, 0xDB, 0xCF,0x66}; как к PORTB присваивать элемент массива по очереди через 1 секунду
  11. Добрый день, подскажите пожалуйста const unsignet char DATA [ ] = { 0x3F, 0xDB, 0xCF, 0x66}; // инициализация массива теперь нужно элементы массива присваивать к PORTB с паузой в 1 секунду, по очереди PORTB = DATA(0); _delay_ms(1000); PORTB = DATA(1); и так далее. правильно или нет? как можно все это красивее сделать? Заранее спасибо
  12. Добрый день , меня очень заинтересовало ваше предложение. Я изучаю литературу, выполняю практические уроки , и в процессе встречаются проблемы которые я либо в учебнике не увидел либо не запомнил либо еще что то. Я хотел бы собирать эти вопросы и обращаться к Вам как к наставнику по электронике. (да за плату ) Буду признателен! За понимание .
  13. я понимаю ваше недовольство, но вот момент какой, я начал изучать AVR и функция delay.h не работает. в atmelstudio 6.0 при написание выводиться подсказка в поиске есть 3 варианта записи этой функции. ПОЧЕМУ РАБОТЕТ ТОЛЬКО <util/delay.h> а остальные не работают. Вот как это можно выявить изначально!? Читаю книгу, выяснил что для выяснения состояния используется регистр SREG как его записать в СИ ??? если есть книги толковые скиньте пожалуйста, буду признателен!
  14. Господа программисты ! ответьте пожалуйста ! все #define и #include выучить не реально помоему . для начинающего для меня это вообще головоломка. подскажите как определять что когда объявлять, есть может где нибудь список! инфа конкретно по этому моменту
  15. Можно наверно, просто когда я упираюсь в тупить в ходе изучения, трачу много времени чтобы найти ответ. А на курсах можно сразу все проблемы решать. И не мало важный момент документ о прохождении повышения квалификации или курсы.
×
×
  • Создать...