Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Library: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung
- * (c) by Hauke Marquardt
- */
- void lcd_add_static_chars() {
- uint8_t char10[8] = {0b11111, 0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
- char01[8] = {0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111, 0b11111, 0b11111},
- char11[8] = {0b11111, 0b11111, 0b11111, 0b00000, 0b00000, 0b11111, 0b11111, 0b11111};
- lcd_generatechar(5, char10);
- lcd_generatechar(6, char01);
- lcd_generatechar(7, char11);
- }
- void lcd_display_bars(uint8_t *tmpValues, uint8_t rows) {
- uint8_t endChars[4][8] = {0}, currentEndChar = 0;
- for(uint8_t lcd_row = 0; lcd_row < rows; lcd_row++) {
- for(uint8_t i = 1; i <= 16; i++) {
- if((tmpValues[0 + 2 * lcd_row] > (i - 1) * 5 && tmpValues[0 + 2 * lcd_row] < i * 5) || tmpValues[1 + 2 * lcd_row] > (i - 1) * 5 && tmpValues[1 + 2 * lcd_row] < i * 5) {
- for(uint8_t c = 0; c < 6; c++) {
- if(tmpValues[0 + 2 * lcd_row] >= ((i - 1) * 5) + c)
- for(uint8_t r = 0; r < 3; r++)
- endChars[currentEndChar][r] |= (1 << 4 - c + 1);
- if(tmpValues[1 + 2 * lcd_row] >= ((i - 1) * 5) + c)
- for(uint8_t r = 5; r < 8; r++)
- endChars[currentEndChar][r] |= (1 << 4 - c + 1);
- }
- lcd_generatechar(currentEndChar, endChars[currentEndChar]);
- lcd_setcursor(i - 1, lcd_row + 1);
- lcd_data(currentEndChar);
- currentEndChar++;
- }
- else {
- lcd_setcursor(i - 1, lcd_row + 1);
- if(tmpValues[0 + 2 * lcd_row] >= i * 5 && tmpValues[1 + 2 * lcd_row] >= i * 5) lcd_data(uint8_t(7));
- else if(tmpValues[0 + 2 * lcd_row] >= i * 5 && tmpValues[1 + 2 * lcd_row] < i * 5) lcd_data(uint8_t(5));
- else if(tmpValues[0 + 2 * lcd_row] < i * 5 && tmpValues[1 + 2 * lcd_row] >= i * 5) lcd_data(uint8_t(6));
- else lcd_data(' ');
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement