Stap 4: Hoe Animate tekens op het scherm
Animate.c
Deze afbeelding is nogal saai. Maar check out de video later in dit bericht.
voorbeeld van de code van de Animate.c toont de functies animateLeft() en animateRight().
Ik wilde een nieuw elan voor de taak van het schrijven van tekst naar displays.
Met hd44780_set_cursorPosition()-functie, de Increment/Decrement, MoveLeft en MoveRight opdrachten kan je sommige vrij mooi tekstanimatie.
Laten we kijken naar de code en zie hoe wij deze taak kunnen volbrengen.
#include #include "hd44780_4bit_lib.h" #include /* * This code example writes text to the screen using the * Cursor Increment, Decrement and Cursor Left and Right * commands, along with some functions that anaimate the * printing of characters to the display * I was going to use timer events for the character * wait time, but I wanted the code to be non CPU specific. */void main() { WDTCTL = WDTPW | WDTHOLD; // Disable watchdog timer // according to spec give the display 10ms to come up to voltage __delay_cycles(10000 * CPUSPEED); // set up data length, number of lines and font // notice we have setup the display for 2 lines //and using the 5 x 8 character size hd44780_init(N_2LINE, FONT_8); // if needed set up the cursor // 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); // The anaimate functions take three parameters: // The text string to print // The visible width of the display in characters // The justification, 'L' for Left justification // 'C' for centered text // 'R' for right jusificatiopn // The number of clock cycles you want to wait after // each character is printed hd44780_animateRight("This is Right", 20, 'C', 2500); hd44780_send_command(HD44780_CMD_DECREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_LEFT); hd44780_setCursorPosition(1, 19); hd44780_animateLeft("This is Left", 20, 'C', 2500); hd44780_send_command(HD44780_CMD_INCREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT); hd44780_send_command(HD44780_CMD_RETURN_HOME); }
Neem de code en de beoordeling door de sectie:
hd44780_setCursorPosition(0, 0); // The anaimate functions take three parameters: // The text string to print // The visible width of the display in characters // The justification, 'L' for Left justification // 'C' for centered text // 'R' for right jusificatiopn // The number of clock cycles you want to wait after // each character is printed hd44780_animateRight("This is Right", 20, 'C', 2500);
Eerst ingesteld AC adres tegenovergesteld aan het verhogen van de tekst, dan zetten we de display om de cursor naar rechts.
Vervolgens stellen we de positie van de cursor naar de rij 0, kolom 0.
Dan bellen we de functie hd44780_animateRight().
Merken we worden een paar argumenten doorgegeven aan deze methode.
De tekst die u wilt afdrukken op het scherm
De zichtbare breedte van de regel op het scherm, op mijn lijn van de display een is verdeeld in twee 20-karakter lijnen op het beeldscherm.
Vervolgens geven we de uitvulling van tekst op het display. 'L' voor linker rechtvaardiging, 'C' voor rechtvaardiging van het centrum en 'R' voor juiste rechtvaardiging.
U moet ook een micro tweede pauze tijd invoeren, deze parameter geeft de tijd van de pauze na elk teken wordt afgedrukt op het display. Door deze parameter wijzigen kunt u versnellen of vertragen van de animatie van de tekens die worden afgedrukt op het display.
Aanroepen van de functie hd44780_animateRight() de tekenreeks naar de weergave vervolgens afgedrukt.
hd44780_send_command(HD44780_CMD_DECREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_LEFT); hd44780_setCursorPosition(1, 19); hd44780_animateLeft("This is Left", 20, 'C', 2500); hd44780_send_command(HD44780_CMD_INCREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT); hd44780_send_command(HD44780_CMD_RETURN_HOME);
Evenzo kunnen we dan veranderen de AC, adres tegenovergesteld aan Decrement de positie van de cursor en de tekens naar links verplaatst.
We nu de cursorpositie ingesteld op rij 1 en kolom 19, laatste teken van de eerste lijn. Vergeet niet weergave is nul gebaseerd. Beginnen met tellen vanaf 0 in plaats daarvan als 1.
Dan bellen we hd44780_animateLeft() om te animeren de tekens naar links.
Deze codering monsters zijn slechts een eenvoudig voorbeeld van wat u met de hd44780 controller interface doen kunt.
Als ik kom met meer toevoegingen aan de bibliotheek zal ik hen die om het even welk iedereen laten weten in een nieuwe post toevoegen.