KwikStik HELLO WORLD: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
|||
| Riadok 86: | Riadok 86: | ||
Projekt na stiahnutie: [[Súbor:LCD HELLO WORLD.rar]] | Projekt na stiahnutie: [[Súbor:LCD HELLO WORLD.rar]] | ||
== Zdroje == | |||
* Schéma KwikStik modulu. | |||
Verzia z 13:56, 15. december 2012
Výpis "HELLO WORLD!" na LCD displeji KwikStik modulu
Na LCD displeji KwikStik modulu sa zobrazuje reťazec "HELLO WORLD!". Pretože LCD displej umožňuje zobraziť len 6 znakov, reťazec rotuje na displeji z ľava do prava a naopak so stanovenou periódou. Po dosiahnutí konca reťazca program počká stanovený počet milisekúnd a pokračuje v rotácií reťazca do opačného smeru.
Súbor:KwikStik hello world.jpg
Použité ovládače a súbory
V projekte pre výpis reťaca "HELLO WORLD!" sú použité súbory a ovládače zo vzorových projektov spoločnosti Freescale. Sú to:
|
Driver_SLCD.c <br\> Driver_SLCD.h |
Ovládač pre LCD displej. |
|
Fonts_LCD.c<br\> Fonts_LCD.h |
Súbor obsahujúci definície znakov pre LCD dispej. Využíva ho ovládač Driver_SLCD. |
| PounceTypes_v2.h | Súbor obsahujúci definície dátových typov pre ovládač Driver_SLCD. |
|
Clock.c<br\> Clock.h |
Súbor obsahuje funkciu (InitClock) a definície pre inicializáciu frekvencie MCU. Funkcia InitClock nastavi nasledovné MCU na nasledovné frekvencie:
|
|
SysTick.c<br\> SysTick.h |
Ovládač pre SysTick (System Tick Timer), ktorý je využívaný pre delay funkciu. SysTick časovač je časť jadra CortexM4 preto sa jéj popis v referenčnom manuáli PK40X256 nenachádza. Popis SysTick časovača je možné nájsť v Cortex M4 Generic User Guide. |
Popis programu
Po spustení programu sa najprv inicializujú premenné.
STRING text = "HELLO WORLD!"; //Premenna obsahujuca retazec na vypis. int text_length = strlen(text); //Dlzka retazca. BOOL direction = DIR_LEFT; //Premena urcujuca smer rotacie retazca na LCD displeji. int counter = 0; //Pocitadlo rotacii.
Nasleduje inicializácia frekvencií jadra, SysTick časovača a LCD displeja.
InitClock(); //Inicializacia frekvencii jadra. InitSysTick(); //Inicializacia SysTick casovaca. _SLCDModule_Init(); //Inicializacia LCD displeja.
Algoritmus riadenia rotácie reťazca na LCD displeji.
for(;;) {
if (direction == DIR_RIGHT){
if (counter <= (text_length - CHAR_ON_LCD_COUNT)){
_SLCDModule_TurnOffAllSegments();
_SLCDModule_PrintString(&text[counter], 1);
counter++;
Delay_mS(ROTATION_STEP_DELAY);
}else{
Delay_mS(ROTATION_END_DELAY);
direction = DIR_LEFT;
}
} else if (direction == DIR_LEFT){
if (counter > 0){
counter--;
_SLCDModule_TurnOffAllSegments();
_SLCDModule_PrintString(&text[counter], 1);
Delay_mS(ROTATION_STEP_DELAY);
}else{
Delay_mS(ROTATION_END_DELAY);
direction = DIR_RIGHT;
}
}
}
Bloková schéma algoritmu:

Hotový projekt obsahuje dokumentáciu zdrojového kódu v anglickom jazyku.
Projekt na stiahnutie: Súbor:LCD HELLO WORLD.rar
Zdroje
- Schéma KwikStik modulu.