C-bibliotek för HD44780 LCD uppvisning Controller (4 / 4 steg)
Steg 4: Hur man animera tecken i displayen
Animate.c
Denna bild är ganska tråkigt. Men kolla in videon senare i detta inlägg.
Animate.c kodexempel visar funktionerna animateLeft() och animateRight().
Jag ville piffa upp uppgiften att skriva texten till bildskärmar.
Med hjälp av hd44780_set_cursorPosition() funktion, öka/minska, MoveLeft och MoveRight kommandon kan du göra några ganska trevligt textanimering.
Låt oss titta på koden och se hur vi kan utföra denna uppgift.
#include
#include "hd44780_4bit_lib.h"
#include
/*
* Detta kodexempel skriver text till skärmen med den
* Markören ökning, minskning och markören vänster och höger
* kommandon, tillsammans med vissa funktioner som anaimate den
* skriva ut tecken till displayen
* Jag skulle använda timerhändelser för tecken
* vänta tid, men jag ville koden vara icke CPU specifika.
*/
void main)
{
WDTCTL = WDTPW | WDTHOLD; Inaktivera watchdog-timer
Enligt spec ge displayen 10ms komma till spänning
__delay_cycles(10000 * CPUSPEED);
ställa in datalängd, antal linjer och teckensnitt
märke vi har setup Visa för 2 rader
och med 5 x 8 tecken storleksanpassar
hd44780_init (N_2LINE, FONT_8);
om behövs ställa in markören
hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR);
hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK);
hd44780_send_command(HD44780_CMD_INCREMENT);
hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT);
hd44780_setCursorPosition (0, 0);
Anaimate funktioner ta tre parametrar:
Textsträngen att skriva ut
Displayen i tecken synliga bredd
Motiveringen, "L" för vänster
"C" för centrerad text
"R" för rätt jusificatiopn
Antalet klockcykler du vill vänta efter
varje tecken skrivs ut
hd44780_animateRight ("Detta är rätt", 20, "C", 2500);
hd44780_send_command(HD44780_CMD_DECREMENT);
hd44780_send_command(HD44780_CMD_MOVE_CURSOR_LEFT);
hd44780_setCursorPosition (1, 19);
hd44780_animateLeft (det är vänster", 20,"C", 2500);
hd44780_send_command(HD44780_CMD_INCREMENT);
hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT);
hd44780_send_command(HD44780_CMD_RETURN_HOME);
}
Låt oss ta koden och översyn avsnitt av avsnitt:
hd44780_setCursorPosition (0, 0);
Anaimate funktioner ta tre parametrar:
Textsträngen att skriva ut
Displayen i tecken synliga bredd
Motiveringen, "L" för vänster
"C" för centrerad text
"R" för rätt jusificatiopn
Antalet klockcykler du vill vänta efter
varje tecken skrivs ut
hd44780_animateRight ("Detta är rätt", 20, "C", 2500);
Vi anger du räknaren AC adress att öka texten, då vi satt upp displayen att flytta markören till höger.
Vi ange markörens position till rad 0, kolumn 0.
Vi anropar sedan funktionen hd44780_animateRight().
Märke vi har att passera några argument till denna metod.
Den text du vill skriva ut på displayen
Rad på skärmen, på min display fodra en synlig bredd delas mellan två 20 tecken linjer på displayen.
Sedan ange vi text motiveringen på displayen. "L" för vänster motivering, "C" för center motivering och "R" för högerjustering.
Du måste också ange en mikro andra paus tid, denna parameter kommer att ange paus tiden efter varje tecken skrivs ut på displayen. Genom att ändra denna parameter kan du snabba upp eller sakta ner animeringen av de tecken som skrivs ut till displayen.
Att anropa funktionen hd44780_animateRight() kommer sedan skriva ut textsträngen till displayen.
hd44780_send_command(HD44780_CMD_DECREMENT);
hd44780_send_command(HD44780_CMD_MOVE_CURSOR_LEFT);
hd44780_setCursorPosition (1, 19);
hd44780_animateLeft (det är vänster", 20,"C", 2500);
hd44780_send_command(HD44780_CMD_INCREMENT);
hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT);
hd44780_send_command(HD44780_CMD_RETURN_HOME);
På samma sätt kan vi ändra AC, adress Counter att minska markörens position och flytta tecken till vänster.
Vi nu ställa in markörens position till rad 1 och kolumn 19, sista tecknet för på första raden. Kom ihåg att displayen är nollbaserat. Börja räkna från 0 istället om 1.
Sedan kallar vi hd44780_animateLeft() om du vill animera tecken till vänster.
Detta kodning prover är bara ett grundläggande exempel på vad du kan göra med hd44780 controller gränssnittet.
Om jag kommer upp med ytterligare tillägg till biblioteket kommer jag att lägga dem någon låta alla veta i ett nytt inlägg.