Fix lab04 based on feedback

This commit is contained in:
Arti Zirk 2016-12-01 14:38:58 +02:00
parent 04031523d4
commit f1fe589942
2 changed files with 9 additions and 7 deletions

View File

@ -80,19 +80,21 @@ static inline void search_month (void)
fscanf(stdin, "%c", &letter); fscanf(stdin, "%c", &letter);
fprintf(stdout, "%c\n", letter); fprintf(stdout, "%c\n", letter);
lcd_goto(0x40); // Got to the beginning of the next line lcd_goto(0x40); // Got to the beginning of the next line
char spaces_to_print = 16;
for (int i = 0; i < 6; i++) { for (int i = 0; i < 6; i++) {
if (!strncmp_P(&letter, (PGM_P)pgm_read_word(&months[i]), 1)) { if (!strncmp_P(&letter, (PGM_P)pgm_read_word(&months[i]), 1)) {
fprintf_P(stdout, (PGM_P)pgm_read_word(&months[i])); char printed_count;
printed_count = fprintf_P(stdout, (PGM_P)pgm_read_word(&months[i]));
fputc('\n', stdout); fputc('\n', stdout);
lcd_puts_P((PGM_P)pgm_read_word(&months[i])); lcd_puts_P((PGM_P)pgm_read_word(&months[i]));
lcd_putc(' '); lcd_putc(' ');
spaces_to_print -= (printed_count + 1);
} }
} }
// Clear the end of the line
// this is fine because even when the hd44780 address counter goes over 0xf4 for (; spaces_to_print > -1; spaces_to_print--) {
// we still have quite a few addresses left until address counter overflow lcd_putc(' ');
// and we also dont care about the data that is at the end of the ddram }
lcd_puts_P(PSTR(" ")); // Clear the end of the line
fprintf_P(stdout, PSTR(GET_MONTH_MSG)); fprintf_P(stdout, PSTR(GET_MONTH_MSG));
} }

View File

@ -21,7 +21,7 @@ int uart0_getc_wrap(FILE *stream)
// this function is only called out when there is at least one character // this function is only called out when there is at least one character
// available in the input buffer (see main.c line 114) then error checking // available in the input buffer (see main.c line 114) then error checking
// is not currently necessary. // is not currently necessary.
return (char)uart0_getc(); return uart0_getc() & 0xff;
} }
int uart3_putc_wrap(char c, FILE *stream) int uart3_putc_wrap(char c, FILE *stream)