© 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).
