Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
06.01.2007, 19:23
|
|
Частый гость
Регистрация: 25.07.2006
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Тип "string" УПАРИЛСЯ УЖЕ!!!
---------------------
|
|
|
|
06.01.2007, 20:01
|
|
Частый гость
Регистрация: 25.07.2006
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
-------------
|
|
|
|
06.01.2007, 20:27
|
|
Гражданин KAZUS.RU
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
|
#include ‹mega16.h›
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include ‹lcd.h›
/* [0] "Hello Word" */ flash unsigned char Mes0[]={131,72,101,108,108,111,32,87,111,114,100,0};
void main(void)
{
lcd_init(16);
lcd_putsf(Mes0) ;
}
|
|
|
|
06.01.2007, 20:51
|
|
Частый гость
Регистрация: 25.07.2006
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
--------------------
|
|
|
|
06.01.2007, 22:00
|
|
Гражданин KAZUS.RU
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
|
Цитата:
|
А этот код работает криво почему немогу понять?
flash unsigned char *men0[] =
{
{1,2,3,4,5,0},
{1,2,3,4,5,0},
{1,2,3,4,5,0},
};
|
вроде так обявляется двумерный масив 3 на 6
обращятся к нему надо mas[x][y]
|
|
|
|
06.01.2007, 23:58
|
|
Частый гость
Регистрация: 25.07.2006
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
------------------------
|
|
|
|
07.01.2007, 00:20
|
|
Прописка
Регистрация: 27.05.2005
Сообщений: 127
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
если компилятор нормальный то он должен понимать такое:
const char *men0[] =
{
"Hello word 1",
"x30x30x31x32",
"Hello word 2",
"Hello word 3",
"Hello word 4"
};
то есть printf должна принимать данные в "чистом виде" например x30, а "кавычки" всё равно в конце вставят ноль.
|
|
|
|
07.01.2007, 00:32
|
|
Прописка
Регистрация: 27.05.2005
Сообщений: 127
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
естественно можно вот так:
const char Array1[] = {1,2,3,4,5,6,7,8,0};
const char Array2[] = {1,2,3,4,5,6,7,8,0};
const char Array3[] = {1,2,3,4,5,6,7,8,0};
const char Array4[] = {1,2,3,4,5,6,7,8,0};
const char *men1[] = {Array1, Array2, Array3, Array4};
Хотя лично я написал бы перекодировщик. Наример мой армовский КЕЙЛ в исходниках сохраняет русские буквы в виндовой кодировке и чтобы было наглядно там где кодировка отличная (не только досовская) есть функции перекодирования.
Это не только удобство и наглядность но и, в последствии , меньшее количество ошибок и быстрая модификация кода.
|
|
|
|
07.01.2007, 00:51
|
|
Прописка
Регистрация: 27.05.2005
Сообщений: 127
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
до кучи.. )) как это красиво выглядит на ассемблере:
myArray:
db 1, 32, 2, 3, 0
db 43, 4, 2, 5, 34, 0
db 12, 15, 0
...
и т.д
Далее вызываем функцию с параметром. параметр - номер строки массива. Функция обращается к первому элементу массива по адресу "myArray" и начинает перебирать элементы и считать нули (либо какой другой служебный символ, например FF). Функция возвращает абсолютный адрес строки либо копирует в ОЗУ. По вкусу
Кому то может показаться слишком долгой процедурой но я везде успевал )
|
|
|
|
07.01.2007, 00:56
|
|
Частый гость
Регистрация: 25.07.2006
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:58.
|
|