Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2014:spi-glcd-msp

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2014:spi-glcd-msp [2015/01/09 09:44]
David Čada [Program pro řízení]
2014:spi-glcd-msp [2015/01/09 10:14] (aktuální)
David Čada [Závěr]
Řádek 35: Řádek 35:
 void send_SPI(unsigned int c) void send_SPI(unsigned int c)
 { {
 +//funkce odešle po SPI lince 16bitovou proměnnou
 +
  unsigned int a;  unsigned int a;
- a=c>>​8;​+ a=c>>​8; ​       //do a je uložena horní část 16bitové proměnné
  
- while(!(UCA0IFG&​UCTXIFG));​ + while(!(UCA0IFG&​UCTXIFG)); ​  //čekej dokud je buffer prázdný 
- UCA0TXBUF=(unsigned char)a; + UCA0TXBUF=(unsigned char)a; ​ //​pošli horní část proměnné 
- while(!(UCA0IFG&​UCTXIFG));​ + while(!(UCA0IFG&​UCTXIFG)); ​  //čekej dokud je buffer prázdný 
- UCA0TXBUF=(unsigned char)c; + UCA0TXBUF=(unsigned char)c; ​ //​pošli spodní část proměnné 
- while(!(UCA0IFG&​UCTXIFG));​+ while(!(UCA0IFG&​UCTXIFG)); ​  //čekej dokud je buffer prázdný
  
  P1OUT |= BIT6;  P1OUT |= BIT6;
Řádek 50: Řádek 52:
 </​code>​ </​code>​
  
-== Funkce pro odeslání příkazu==+== Funkce pro odeslání příkazu ​do LCD==
 <code cpp> <code cpp>
 void LCD_CMD(unsigned char command) void LCD_CMD(unsigned char command)
Řádek 69: Řádek 71:
 </​code>​ </​code>​
  
-== Funkce pro odeslání dat==+== Funkce pro odeslání dat do LCD==
 <code cpp> <code cpp>
 void LCD_DATA(unsigned char data) void LCD_DATA(unsigned char data)
Řádek 99: Řádek 101:
 void graphics_clear(void) void graphics_clear(void)
 { {
-//funkce vyčistí grafickou část+ 
 +//funkce vyčistí grafickou ​a textovou ​část 
 +//všechny pozice RAM jsou vyplněny nulami 
 +//bez vynulování zobrazuje LCD nahodilé symboly a grafiku 
 unsigned int m=0; //​proměnné pro cykly unsigned int m=0; //​proměnné pro cykly
 unsigned int n=0; //​proměnné pro cykly unsigned int n=0; //​proměnné pro cykly
Řádek 109: Řádek 115:
  for(n=0;​n<​40;​n++)  for(n=0;​n<​40;​n++)
  {  {
- cursor(9600+m*360+n);​+ cursor(9600+m*360+n); ​//výběr jednotlivých sektorů paměti LCD
  
- LCD_CMD(0x42);​+ LCD_CMD(0x42); ​       //​nastav zápis 
 +                                      //sektor LCD vyplněn nulami
  LCD_DATA(0x00);​  LCD_DATA(0x00);​
  LCD_DATA(0x00);​  LCD_DATA(0x00);​
Řádek 176: Řádek 183:
 _delay_cycles(1000);​ _delay_cycles(1000);​
  
 +// inicializační sekvence pro LCD 320x240 ​
 +// pro jiný rozměr je nutno přepočítat
 + 
 LCD_CMD(0x40);​ //system set LCD_CMD(0x40);​ //system set
 LCD_DATA(0x30);​ LCD_DATA(0x30);​
Řádek 215: Řádek 225:
 ==Test grafické části řízení - jezdící had== ==Test grafické části řízení - jezdící had==
 <code cpp> <code cpp>
 +unsigned int px=0;
 +unsigned int py=0;
 +//​proměnné se inkrementují tak dlouho dokud "​nenarazí na kraj LCD" ​
 +//což je zjištěno pomocí podmínek if(py==239),​ následně se vynuluje příznak
 +//a proměnná se dekrementuje,​ poloha aktuálního bodu je zapsána pomocí write_pixel(px,​py);​
 +
 while(1) while(1)
 { {
Řádek 237: Řádek 253:
 ypriznak=0; ypriznak=0;
  
-write_pixel(px,​py);​ +write_pixel(px,​py); ​//zápis polohy bodu 
-for(i=0;​i<​4000;​i++)+ 
 +for(i=0;​i<​4000;​i++) ​ //​jednoduchý delay
 {} {}
  
Řádek 246: Řádek 263:
 } }
 </​code>​ </​code>​
-https://​www.youtube.com/​watch?​v=FCzxzdG-qaQ+ 
 +==== Závěr ==== 
 +Funkční řízení LCD po lince SPI je možno vidět na tomto odkazu ​https://​www.youtube.com/​watch?​v=FCzxzdG-qaQ ​. Na uvedeném testu je možno vidět postupné několikanásobné vypsání textu Hello world, následně změněna adresa zápisu a vypsáno písmeno C pro zjištění správně textové mřížky LCD. Grafická část zobrazuje jezdícího hada. Během testování se ukázalo, že k řízení by bylo vhodné zvýšit takt procesoru ( použitá vývojová SPI deska využívá takt pouze 4MHz ) případně využít procesor s rychlejším SPI modulem. Použitý LCD výrobce Raystar nedosahuje příliš vysokého kontrastu. V katalogovém listu je uvedena barva černobílá avšak černá tohoto displeje připomíná spíše modrou. Celkový kód je možno vidět zde http://​pastebin.com/​UqdhU00N
2014/spi-glcd-msp.1420793049.txt.gz · Poslední úprava: 2015/01/09 09:44 autor: David Čada