U vezi tajmera, ne zavrsava mi posao taj tajmer od 1ms, presporo mi to. U LCD rutinama imam potrebe za dosta manjim deley od toga, tako da nema veze, icicu sa prostim praznim petljama.
Nego napravio sam ove sve bitne funkcije za LCD:
void LCD_Init_pins (void);
void LCD_Display_init (void);
void LCD_send_nibble( unsigned char n );
void LCD_send_byte( unsigned char address, unsigned char n );
void LCD_send_string (volatile char *s);
void LCD_goto_home (void);
void LCD_clear_all (void);
void LCD_cursor_control (int cursor_on_off, int blinking_on_off);
void LCD_cursor_left(int no);
void LCD_cursor_right(int no);
void LCD_goto_home_line1 (void);
void LCD_goto_home_line2 (void);
To radi bas fino i brzo. Recimo 5 karaktera (npr neki brojac) moze skoro 1000 puta u sekundi da osvezi, sto mu dodje negde oko 100 puta u sekundi za ceo 2x16 niz. To je extra, moze VU metar da se napravi ;)
Evo u prilogu biblioteka. Bacite pogled i dajte sugestije ako vidite nesto sto moze da se unapredi ili koriguje ...
Koristi se dakle vrlo prosto, npr:
Code:
LCD_Init_pins();
LCD_Display_init();
LCD_cursor_control (1, 0);
LCD_send_string("Init complete!");
LCD_goto_home_line2();
int yy;
char dizi[10];
for (yy=10000; yy<=99999; yy++) {
sprintf(dizi,"%d",yy);
LCD_send_string(dizi);
LCD_cursor_left(5);
}
[Ovu poruku je menjao mikikg dana 31.08.2013. u 12:51 GMT+1]