Witam,
mam problem, mam program który działa, ale jest on przystosowany tylko do sółw które maja 5 znaków. Chciałbym go zrobić w pętle aby można było programu używać do różnych słów. Program jest napisany na uC ale w języku C więc na pewno będzie wiadomo o co chodzi. Na wyświetlaczu ma się przesuwać tekst, z tym że na poczatku musi się on wysunąć z boku w taki sposób:
|o
|lo
|llo
|ello
|Hello
LCD_GoTo(X,Y) - ustawia w którym miejscu ma się pojawiać dany znak, Y jest zawsze 0 bo korzystam z zerowej linijki wyświetlacza.
LCD_WriteData (Text[a]) - wysyła w wskazane miejsce znak.
Prosiłbym o jakąś podpowiedź jak się za to zabrać. Wszystko co dało rade to zamieniłem na funkcje a nie wpisywane cyfry.
/*
* main.c
*
* Created on: 15 gru 2014
* Author: User
*/
#include "HD44780.h"
#include <string.h>
#include <util/delay.h>
int main(){
LCD_Initalize();
LCD_Clear();
char Text[]="Hello";
uint8_t a,b,c;
a=strlen(Text)-1;
while(1){
LCD_GoTo(b,0);
LCD_WriteData(Text[a]);
_delay_ms(300);
a=strlen(Text)-1;
b=1;
LCD_GoTo(b,0);
LCD_WriteData(Text[a]);
a--;
b--;
LCD_GoTo(0,0);
LCD_WriteData(Text[a]);
_delay_ms(300);
a=strlen(Text)-1;
b=2;
LCD_GoTo(b,0);
LCD_WriteData(Text[a]);
a--;
b--;
LCD_GoTo(b,0);
LCD_WriteData(Text[a]);
a--;
b--;
LCD_GoTo(b,0);
LCD_WriteData(Text[a]);
_delay_ms(300);
a=strlen(Text)-1;
b=3;
LCD_GoTo(b,0);
LCD_WriteData(Text[a]);
a--;
b--;
LCD_GoTo(b,0);
LCD_WriteData(Text[a]);
a--;
b--;
LCD_GoTo(b,0);
LCD_WriteData(Text[a]);
a--;
b--;
LCD_GoTo(b,0);
LCD_WriteData(Text[a]);
_delay_ms(300);
a=strlen(Text)-1;
for(c=0;c<=16;c++){
LCD_GoTo(c,0);
LCD_WriteText(Text);
_delay_ms(300);
LCD_Clear();
}
}
}