© Harry Broeders.
Deze pagina is bestemd voor studenten van de Haagse Hogeschool - Academie voor Technology, Innovation & Society Delft.
De AVR STK500 systemen van de opleiding Elektrotechniek aan de Academie voor Technology, Innovation & Society Delft zijn uitgerust met een LCD display. Dit display bevat 2 regels van elk 16 karakters. Deze LCD wordt aangestuurd met een Hitachi HD44780 controller.
Er zijn verschillende functies beschikbaar waarmee de LCD vanuit C aangestuurd kan worden. Deze functies zijn in de file lcd.h gedeclareerd:
void lcd_init(void); /* initialize LCD */
void lcd_cls(void); /* clear screen and place cursor in home position */
void lcd_home(void); /* place cursor in home position (upper left corner) */
void lcd_cursor(bool cursorOn, bool cursorBlinks); /* configure cursor */
void lcd_goto(uint8_t row, uint8_t column); /* place cursor on row (0..1) and column (0..39) */
uint8_t lcd_get_row(void); /* get current cursor row position (0..1) */
uint8_t lcd_get_column(void); /* get current cursor column position (0..39) */
void lcd_putc(char c); /* write character c */
void lcd_puts(char* s); /* write string s */
void lcd_puts_P(const char* PROGMEM s); /* write string s from program space */
Deze functies zijn gedefinieerd in lcd.c.
Deze functies kunnen bijvoorbeeld als volgt gebruikt worden (lcd_demo.c):
#include <stdio.h>
#include "lcd.h"
int main(void) {
char buffer[17];
int i=30000;
lcd_init();
lcd_cursor(false, false); /* cursor uit */
while(i>0) {
lcd_home();
lcd_puts("0123456789ABCDEF");
lcd_goto(1, 0);
snprintf(buffer, sizeof buffer, "i = %12d", i++);
lcd_puts(buffer);
}
lcd_cls();
lcd_puts("Hallo");
lcd_goto(lcd_get_row()+1, lcd_get_column()-1);
lcd_puts("AVR wereld !");
while(1);
return 0;
}
Meer informatie over de snprintf
functie kun je vinden in het studiemateriaal
dat op blackboard staat (les 5).