Ewgeny7, Функции выхлопа SPI в студию...
Keil прекрасно лечиться , главное юникод не заюзать ...
http://i056.radikal.ru/1405/99/d20fdfb81e11.png
Вид для печати
Ewgeny7, Функции выхлопа SPI в студию...
Keil прекрасно лечиться , главное юникод не заюзать ...
http://i056.radikal.ru/1405/99/d20fdfb81e11.png
Софтверное ногодрыжество. Чуть позже всю либу выложу, как причешу ее.
Собственно, посыл байта выглядит так -
Можно пооптимизировать при желании, но там вообще можно код полопатить по-взрослому...Код:static void LcdVSPI (byte data ) {
unsigned int i;
unsigned char tmp;
for(i = 0; i< 8; i++, data = data << 1){
tmp=(data & 0x80);
if (tmp==0x80) SET_LCD_PIN(LCD_PORT,LCD_SDIN_PIN);
else RESET_LCD_PIN(LCD_PORT,LCD_SDIN_PIN);
SET_LCD_PIN(LCD_PORT,LCD_SCLK_PIN);
RESET_LCD_PIN(LCD_PORT,LCD_SCLK_PIN);
}
}
Ewgeny7, Отчего не SPI железный?
Вот честно, не люблю... Я предпочитаю сам выбирать лапы для периферии...
Кейл пачинил :)
http://img-fotki.yandex.ru/get/5311/...986_684a20c3_L
---------- Post added at 12:47 ---------- Previous post was at 12:37 ----------
Одно дело - пульнуть в железный ЮАРТ байтик и забыть про него, а рулить дисплеем - по-любому ресурсоемкое занятие, здесь железяка существенного выигрыша не даст.
А скорость выхлопа не любишь ? :biggrin:
Я на F0 на 24МГц выплевываю буфер экрана целиком , правда на 9бит SPI ,
зато непрерывным потоком . Без зазоров между байтами и без дерганья CS ...
Инит всего SPI
Выхлоп буфера.Код:SPI1->CR1 |=
SPI_CR1_BR_0 | //
SPI_CR1_MSTR |
SPI_CR1_SSI |
SPI_CR1_SSM
;
SPI1->CR2 = 0x800; // 9 bit
SPI1->CR1 |= SPI_CR1_SPE;
С DMA еще прикольней будет ... :biggrin:Код:void Fill_image(void)
{
uint16_t i;
Gotoxy( 0,0);
for (i=0;i<LCD_MEM_SIZE;i++)
{
while(!(SPI1->SR & SPI_SR_TXE));
SPI1->DR =gImage_cat[i]|0x100;
}
dosikus, суровый ярославский разъем с крепежом! :)
Гы... Это у меня еще с прототипов на пЫк . Там тройники отводы для подсоединения ЛА .
Супер клей + китайские сопли - творят чудеса .:biggrin:
Зато оперативно .:biggrin:
И мы так можем :)
http://img-fotki.yandex.ru/get/6104/...98a_71ee1976_L
---------- Post added at 14:01 ---------- Previous post was at 13:30 ----------
В общем, вот файлы библиотеки для 3310, которые я замучил.
Не пинаться, я только маленько поковырял его.
Для работы включаем нужный порт
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
В хедере n3310.h прописываем номера пинов и сам порт.
Работа с либой проста до безобразия.
Код:LcdInit();
LcdClear();
//LcdStr(FONT_1X,"Привет,Виктор!");
//LcdStr(FONT_1X,"Скоро платка приедет?");
LcdImage(Picture);
LcdUpdate();
---------- Post added at 14:03 ---------- Previous post was at 14:01 ----------
Само картинко (или текст) рисуются в буфере, который по команде LcdUpdate() перекидывается на сам дисплейчик. Практически, DirectX 2D получается :)
До DMA мне еще дорасти нужно :)
Будет, но попозже...
А я тут переношу тестер мелкологики на эту демоплатку. С дисплеем от нокии, конечно :)
Надеюсь к мелкологике - добавится и тестер полупроводников ? :)
Маленько отвлекся пока на железный SD-ридер для ЮТ-88, но размышляю на досуге.
---------- Post added at 14:14 ---------- Previous post was at 14:01 ----------
По какому принципу?
Сунул неведому детальку - получил ответ диод/транзистор/анод/катод/эмиттер... ?
---------- Post added at 14:23 ---------- Previous post was at 14:14 ----------
А зачем? Я вот почти и не знаю о нем ничего...
Для того язык С и нужен, чтобы максимально абстрагироваться от ядра.
Именно ! там на каждом канале добавлялось по 2 резистора и вход юзался.
Теория и практика в "АВР транзистор тестер" ищется.
тем более что у стмки больше ацпшных входов.
кстати - такой принцип можно вполне использовать для детектирования питающих и земляных пинов на микросхемках. но желательно еще добавлять полевики для подачи нормальных +5 и земли на заданные выводц.
Но это уже реализуется путем добавления CPLD например альтера MAX и кучи smd полевиков. Но в таком разе - наши брюки уже плавно превращаются в TL866 программер ( если не путаю модель).
balu_dark, я так понял, что всё это делать не буду. Только то, что будет интересно :)
Я же просил - не надо меня на "вы" ... :biggrin:
А читать для 152L - Reference manual, datashet и errata.
http://www.st.com/web/en/catalog/mmc...N962/PF259947#
DS9515: Ultra-low-power 32-bit MCU ARM®-based Cortex®-M3
RM0038: STM32L100xx, STM32L151xx, STM32L152xx and STM32L162xx advanced ARM-based 32-bit MCUs
ES0224: STM32L100x6/8/B-A STM32L151x6/8/B-A and STM32L152x6/8/B-A Ultra-Low power MCU limitations
AN3216: Getting started with STM32L1xxx hardware development
Читать и задавать здесь вопросы . Например - что такое DMA и как с помощью его облегчить свою участь... :biggrin:
Неправильная фотка .:biggrin:
Блистер в мусорку , дискаверину подключить и тыкать по слайдеру .:biggrin:
Viktor2312, слайдер это нарисованная фиговина в виде треугольника в самом низу дискаверины . :biggrin:
Она кстати подписана - SLIDER .
Можешь не тыкать а плавно двигать по нему пальцем .
Гы ... я думал ты поймешь - плату включи , по управляй и тогда фоткай.
От электроники в упаковке толку мало ... :biggrin:
Ага. Поигравшись, выдирай нафиг этот дисплей и убирай его на дальнюю полку :)
Viktor2312, Здесь вся документация на твою борду http://www.st.com/web/catalog/tools/...S1532/PF250990
Конкретно UM1079: STM32L1 discovery kits: STM32L-DISCOVERY and 32L152CDISCOVERY
Там и схема и описание - что для чего ...
Not fitted - не установлены
http://s020.radikal.ru/i710/1405/38/dc57feab5e1c.png
Чисто С, без всяких плюсов. Плюсы в эмбедде для извращенцев и выходцев с PC кодинга . Что одно и то же ...
Ой, у меня такая же шняжка есть. Только в первый же день прошил в неё что-то незапускающееся :) Теперь чисто как SWD-программатор использую.
---------- Post added at 12:09 ---------- Previous post was at 12:06 ----------
Десять лет назад ровно теми же словами говорили про асм vs си :)
Незачем. В качестве программатора оно мне пока намного полезней, в денежном плане.
Оно ничем не должно отличаться, любая, по-моему, программа на Си может быть скомпилирована плюсовым компилятором. Плюсы удобны для больших (реально больших) программ. Полиморфизм там, наследование, вот это всё.Цитата:
Изучая сейчас Си, вижу сразу указания, чем отличается то или иное действие в С++, пока отличия не значительные,
Но только не в DIY эмбедде , здесь оно излишество и развращает .
Не, если вы избираете хомячковый путь ITшника , засевшего на ардунью , тогда - ради бога ... :biggrin:
Демку залитую в дискаверину легко как и слить STM32 Utility, так и скомпилить из примеров для этой дискаверины.
Только оно не нужно , смело можно вытирать...
---------- Post added at 11:19 ---------- Previous post was at 11:13 ----------
Не поверишь , есть адепты асма пытающиеся и для ARM писать .
В основном выходцы с AVR . :biggrin:
Я не знаю где ты подобный бред взял ...
Во первых читай что такое глобальные и локальные переменные - это для тебя сейчас намного важней .
Во вторых старайся давать имена переменным осмысленные и читаемые.
Чтобы выразить саму суть переменной.
Только ради бога не транслитом,
пример :
knopka
podgotovka
zaderjka
и т.д. и т.п.
Подобного НЕ НАДО !
Есть правила , их и придерживайся .
Здесь есть масса полезного http://www.pic24.ru/doku.php/osa/art...without_errors
Насчёт АСМа, как-то баловался им на самодельной отладке со 101-м камнем и подключенным к ней tft-дисплеем 480*272. Полностью написал инициализацию pll, периферии и дисплея на асме... В общем-то не так и сложно, единственно не хватает макросов типа hi16 low16 для инструкций movw и movt, хотя можно грузить данные в регистры косвенно по рс...
Подскажите по USB CDC.
Имею STM32F4-discovery, EWARM и т.д.
Скачал пример USB CDC. Всё нормально работает, но есть один ньюанс:
при рестарте платы (или кнопкой ресет, или download) естественно USB device "уходит" и снова "приходит". Но забава в том, что если я перед этим в терминалке не отключился от COM порта, то переподключится к нему не могу ("не могу найти COMx"). И далее чтобы таки COM стал находится надо от него отключиться и сделать еще один ресет. Если же я сначала в терминалке отключаюсь от COM порта, потом делают ресет платы, то никаких проблем с подключением нет.
Подозреваю что это настолько глючный драйвер виртуального COM порта под Win8.1 Pro x64.
Что посоветуете?