Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как вывести на LCD данные из буфера?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
GoooBlin
Здравствуйте. У меня в программе на микроконтроллер атмега8 нужно вывести данные из буфера на LCD(16х2).
Тоесть создал буфер( byte TnBuf [65]; ),в который помещаем данные - 65 бит.
Данные нужно вывести в формате ANSII.

Сейчас стоит вот такая конструкция:
Цитата
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
char data[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char aaa;
char bbb;

byte i,k,j;
void main(void)
{
lcd_init(16);
lcd_gotoxy(0,0);
lcd_clear();
}

void lcd_display(char *str)
{
j=0;
k=0;
for (i=0; i<9; i++)
{

aaa = str[i]>>4;
bbb = str[i]&0b00001111;
lcd_gotoxy (j++, k);
lcd_putchar (aaa+48);
lcd_gotoxy (j++, k);
lcd_putchar (bbb+48);
if ((j==8)&&(k==0)) {k=1; j=0;}

}
}

lcd_display(data);


Выводит нето что нужно,а нужно чтобы выводил строчку из 16 символов.

Подскажите пожалуйста, как это лучше реализовать?
Может есть другие способы вывести содержимое буфера на дисплей?
vooon
Код
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18;PORTB
#endasm
#include <lcd.h>


// вы знаете что такое "null terminated string"?
flash char data[16] = "0123456789ABCDEF";



void main(void)
{
  lcd_init(16);
  lcd_gotoxy(0,0);
  lcd_putsf(data); // есть такая функция, как говорится RTFM ;-)
}


ЗЫ: фраза: "создал буфер( byte TnBuf [65]; ),в который помещаем данные - 65 бит." - меня просто убила smile.gif
ЗЫЫ: используйте
Код
[code][/ code]
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.