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;
}