реклама на сайте
подробности

 
 
> как вывести на LCD данные из буфера?, атмега8, 16х2
GoooBlin
сообщение Mar 29 2007, 00:50
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 9-01-07
Пользователь №: 24 224



Здравствуйте. У меня в программе на микроконтроллер атмега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 символов.

Подскажите пожалуйста, как это лучше реализовать?
Может есть другие способы вывести содержимое буфера на дисплей?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
vooon
сообщение Mar 29 2007, 20:26
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



Код
// 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]
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 08:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01346 секунд с 7
ELECTRONIX ©2004-2016