Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: подключить файл с константами
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Диm
может кто знает как прикрутить к проекту файл,он содержит целые числа(8бит) перечисленные через запятую
вот кусочек кода из файла
.cseg
.org 0x100
sie:
.db 127,149,170,191,209,224,237,247,252,254,253,247,238,225,210,192,
zltigo
Цитата(Диm @ May 29 2007, 09:56) *
может кто знает...

Как и любой другой ассемблерный файл.
Wild007
Цитата(Диm @ May 29 2007, 09:56) *
может кто знает как прикрутить к проекту файл,он содержит целые числа(8бит) перечисленные через

Типа так:
Код
.INCLUDE "m16def.inc"     ; установочный файл для Mega16
.INCLUDE "My_dB_FILE.asm"; твой файл с
Диm
Цитата(Wild007 @ May 29 2007, 13:22) *
Типа так:
Код
.INCLUDE "m16def.inc" ; установочный файл для Mega16
.INCLUDE "My_dB_FILE.asm"; твой файл с

это я сделал...
дело в том что вылазит такая ошибка...
D:\work\daL'nomer\sourseasm\l4m\lcm_8_bit_6752kHz_32592.asm(5): error: syntax error, unexpected INTEGER
Wild007
Текст программы в студию!!!!
SasaVitebsk
Цитата(Диm @ May 29 2007, 10:53) *
это я сделал...
дело в том что вылазит такая ошибка...
D:\work\daL'nomer\sourseasm\l4m\lcm_8_bit_6752kHz_32592.asm(5): error: syntax error, unexpected INTEGER


Ну так покажи свою пятую строку, а то гадать - бессмысленно. Это не Си. Если ошибка в пятой - значит в пятой.
Диm
Цитата(SasaVitebsk @ May 29 2007, 14:20) *
Ну так покажи свою пятую строку, а то гадать - бессмысленно. Это не Си. Если ошибка в пятой - значит в пятой.

.cseg
.org 0x400
sne:
.db 127,149,170,191,209,224,237,247,252,254,253,247,238,225,210,192,172,150,128,106,
85,64,46,30,17,8,2,0,1,7,16,28,43,61,81,103,125,147,168,189,207,223,236,246,252,
2
54,253,248,239,227,211,194,174,152,130,108,87,66,48,32,19,9,2,0,1,6,15,27,42,60,
7
9,100,122,145,166,187,205,222,235,245,252,254,253,248,240,228,213,195,176,155,13
3
,110,89,68,50,33,20,9,3,0,1,5,14,25,40,58,77,98,120,143,164,185,204,220,234,244,
2
51,254,254,249,241,229,214,197,178,157,135,112,91,70,51,35,21,10,3,0,0,5,13,24,3
9
,56,76,97,

и количество цифирек 32592 шт...
zltigo
Цитата(Диm @ May 29 2007, 12:02) *
и количество цифирек 32592 шт...

Вопрос на засыпку - а сколько, по Вашему памяти в Atmega16?
Диm
Цитата(zltigo @ May 29 2007, 15:10) *
Вопрос на засыпку - а сколько, по Вашему памяти в Atmega16?

в меге16 16383 байта памяти,у меня то стоит мега64 и в ней 65535 байт и на всё про всё должно хватать!
мда...молодой я ещё и только сейчас понял что вопрос поставлен некорректно!!!!
как прикрутить к проекту на ассемблере файл констант который содержит 32592 значения(8бит)
на си это понятно как сделать,а вот тут возникла проблема...
Wild007
Цитата(Диm @ May 29 2007, 12:17) *
на си это понятно как сделать,а вот тут возникла проблема...

Да нет никакой прблемы с размещением в достаточном количесве памяти переменных. Ошибка
Цитата
дело в том что вылазит такая ошибка...
D:\work\daL'nomer\sourseasm\l4m\lcm_8_bit_6752kHz_32592.asm(5): error: syntax error, unexpected INTEGER

в ассемблировании текста самой программы возникает в пятой строке. Вот ее и покажи (хотябы) smile.gif
add
Цитата
как прикрутить к проекту на ассемблере файл констант который содержит 32592 значения(8бит)

думаю файл надо перелопачивать на предмет установки в каждой строчке! дерективы ".db".. просто набор цифирек(типа тхт) наверное незя.

Цитата
ке. Вот ее и покажи (хотябы)

Дык уже превел.. см. выше. Там как раз .db и нет..
Диm
Цитата(add @ May 29 2007, 15:43) *
думаю файл надо перелопачивать на предмет установки в каждой строчке! дерективы ".db"..

хотелось бы без этого.....
Сергей Борщ
Цитата(Диm @ May 29 2007, 12:54) *
хотелось бы без этого.....

А каким компилятором пользуетесь? Или "голый" ассемблер avrasm? Если компилятор, то может сделать из этого файла с-файл, а из ассемблера его через extern?
Код
My_dB_FILE.c:
unsigned char const __flash sne[] @ 0x400 = {127,149,170,1......
};

lcm_8_bit_6752kHz_32592.asm:
    extern sne
Хотя проставить в каждую строчку .db через Ctrl-C, Ctrl-V займет гораздо меньше времени чем искать другое решение.
Диm
Цитата(Сергей Борщ @ May 29 2007, 16:13) *
А каким компилятором пользуетесь? Или "голый" ассемблер avrasm? Если компилятор, то может сделать из этого файла с-файл, а из ассемблера его через extern?
Код
My_dB_FILE.c:
unsigned char const __flash sne[] @ 0x400 = {127,149,170,1......
};

lcm_8_bit_6752kHz_32592.asm:
    extern sne
Хотя проставить в каждую строчку .db через Ctrl-C, Ctrl-V займет гораздо меньше времени чем искать другое решение.

компилятор авр-студия...
Andreas1
В каждой строчке должно быть .db . Я думаю это проще, чем искать обходные варианты. Только в каждой строке должно быть четное число байт.
Tiro
Цитата(Диm @ May 29 2007, 12:02) *
.cseg
.org 0x400
sne:
.db 127,149,170,191,209,224,237,247,252,254,253,247,238,225,210,192,172,150,128,106,
85,64,46,30,17,8,2,0,1,7,16,28,43,61,81,103,125,147,168,189,207,223,236,246,252,
2
54,253,248,239,227,211,194,174,152,130,108,87,66,48,32,19,9,2,0,1,6,15,27,42,60,
7
9,100,122,145,166,187,205,222,235,245,252,254,253,248,240,228,213,195,176,155,13
3
,110,89,68,50,33,20,9,3,0,1,5,14,25,40,58,77,98,120,143,164,185,204,220,234,244,
2
51,254,254,249,241,229,214,197,178,157,135,112,91,70,51,35,21,10,3,0,0,5,13,24,3
9
,56,76,97,

и количество цифирек 32592 шт...


У тебя в 5-й строчке от .db после 2 не поставлена запятая.
add
Цитата
У тебя в 5-й строчке от .db после 2 не поставлена запятая.

Уверяю Вас, енто непричем:-) И ваще формат такой должен быть:
.db XXX,XXX
.db XXX,XXX,XXX,XX
.dw XXXXX,XXX,XXX
обязательно четное кол-во(уже говорили),(в противном случае теряем байт, и получаем возможные ошибки при некоректно написанной программе) т.к. адресация в сегменте кода по словам, а не по байтам.
(на всякий пажарный для сомневающихся цитата из хелпа :
Syntax:
LABEL: .DB expressionlist
Example:
.CSEG
consts: .DB 0, 255, 0b01010101, -128, 0xaa
.ESEG
const2: .DB 1,2,3
)
Обратите внимание что кол-во байт нечетное,:-) а паЧаму? а потаму что последняя строчка массива:-) и здесь можно забить на четность,хотя компилятор ругнется и проглотит.
Andreas1
Оказывается, иногда полезно читать хелпы. laughing.gif Когда понадобилось, сразу нашел
Цитата
Like in C, source lines can be continued by means of having a backslash (\) as the last character of a line. This is particularly useful when defining long preprocessor macros, and for long .db directives.

Example
.db 0, 1, "This is a long string", '\n', 0, 2, \
"Here is another one", '\n', 0, 3, 0
add
Цитата
Оказывается, иногда полезно читать хелпы. Когда понадобилось, сразу нашел

Не знал :-/ Хотя вставлять "/" в каждую строчку сравнимо со вставкой ".db".
Andreas1
Цитата(add @ Jun 1 2007, 15:35) *
Не знал :-/ Хотя вставлять "/" в каждую строчку сравнимо со вставкой ".db".

Так таблица с нечетным числом столбцов получается нагляднее.
the_victor
попробовал скомпилить пример для LCD
http://atmel.ru/Articles/Atmel17_app3.htm статья http://atmel.ru/Articles/Atmel17.htm
Код
.org $200
rus_buf:        
                .DB $11,$11,$11,$11,$0F,$01,$01,$00
                .DB $12,$12,$12,$12,$12,$12,$1f,$01
                .DB $1f,$11,$11,$11,$11,$11,$11,$00
text:           .DB '  ','  ','  ','  ','O','T','C',0,'E','T'
                .DB '  ','c','  ','A',1,2,':','  ','  ','  '

на строчке text:
D:\MK_rab\AVRstd\AvrStudio4\lcd.asm(160): error: syntax error, unexpected INTEGER
не понимаю, что ей не нравится?
GetSmart
А почему везде по два пробела в одиночных кавычках?
Как это понимать?
sadat
Когда я размещал таблицу шрифтов в асме для дисплея, то ограничился ~2000 символами в строке - больше непонимал компилятор (по всей видимости, у него буфер одной строки на 2048 символов). Поэтому несколько дополнительных org - и все нормально работает. Это самый правильный путь, имхо...
SasaVitebsk
Как правило все крупные массивы, которые получаются из внешних источников - бинарные. В том числе и шрифты, а также те, которые я формирую с помощью вспомогательных программ (например полученные расчётным образом). После этого я использую программу которую написал сам, - преобразование BIN в текст. При чём формирует она как для СИ так и для АСМа. Я её выкладывал где-то. Если надо - ещё кину. Зачем так изголятся (например в одну строку) - не понимаю. Написание такой вспомогательной проги, при нынешнем уровне различных программных комплексов DELFI, VS и т.д. - дело одного дня. Это значительно меньше чем затеянная здесь переписка.
add
Цитата(SasaVitebsk @ Jun 8 2007, 12:20) *
...преобразование BIN в текст. При чём формирует она как для СИ так и для АСМа. Я её выкладывал где-то. Если надо - ещё кину. Зачем так изголятся (например в одну строку) - не понимаю. Написание такой вспомогательной проги, при нынешнем уровне различных программных комплексов DELFI, VS и т.д. - дело одного дня. Это значительно меньше чем затеянная здесь переписка.

beer.gif абсолютно согласен. Вылаживайте прогу.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.