|
|
|
вопрос, по АВР студио |
|
|
|
Jul 26 2007, 11:36
|
Частый гость
Группа: Свой
Сообщений: 156
Регистрация: 12-09-06
Пользователь №: 20 304
|
Цитата(skilful @ Jul 26 2007, 15:31) Всем привет! Можно ли в Студии при написании на асме сделать внешние процедуры в студии можно сделать исходник, состоящий из нескольких асм файлов. Для этого в основном файле код лучше не размещать, а разместить только команды типа .include "my_file1.asm" .include "my_file2.asm" ..... И так все файлы, которые должны быть в проекте.
|
|
|
|
|
Jul 27 2007, 06:40
|
Частый гость
Группа: Свой
Сообщений: 156
Регистрация: 12-09-06
Пользователь №: 20 304
|
Цитата(defunct @ Jul 27 2007, 00:48) очень сомнительное предложение. в основном файле как минимум можно описать таблицу векторов прерываний, инициализацию девайса, и организовать бесконечный цикл. Размещать код в основном файле, или нет - дело вкуса и привычки. Мне, например, нравится делать так, как я уже выше описал. Кому-то может быть удобным Ваш подход.
|
|
|
|
|
Jul 27 2007, 07:47
|
Местный
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459
|
Цитата Всем привет! Можно ли в Студии ... Всегда делаю так, как в хелпе.Очень удобно разбивать на файлы когда много девайсов. Получается своеобразная библиотека функций. Вот пример: Код ... .include "macro.inc" .include "cfg_ports.inc" .include "delay_.inc" .include "leds.inc" .include "lcd_coder.inc" .include "soft_uart.inc" .include "adc_m8535.inc" .include "AD9764.inc" .include "pca9555.inc" .include "spi_ad5570.inc" .include "commun.inc" ... (Включаемые в проект файлы с расширением *.inc)
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Jul 29 2007, 04:43
|
Частый гость
Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886
|
необходимо только помнить, что текс файла, вставляемого по инклуде, будет вставлен в листинг именно в место, где стоит инклуде, и соответствующим образом откомпилирован. пример кода: .include "M8def.inc" .include "opisanie.asm" ;----------------------------------- ; векторы прерываний ;----------------------------------- .cseg .org $000 rjmp RESET ;старт по включению питания .org $001 rjmp SERV_INT0 ;прерывание от нулевого ридера ;добавлена обработка прерываия 1 для первого ридера .org $002 rjmp SERV_INT1;прерывание от первого ридера .org $009 ... ... .include "macros.asm" ... ://///// Подпрограммы /// SendCmd_2: cbi PORTC,DIN_2 sbi PORTC,SCLK_2 sbi PORTC,DIN_2 cbi PORTC,SCLK_2 ... ... ret
.include"subDS1307.ASM" .include "init.asm" .include "initDS1307.asm"
;/////////////////////////////////// ; основная программа ;/////////////////////////////////// dalshe:
.include "initHTRC.asm" ...
|
|
|
|
|
Jul 29 2007, 06:51
|
Местный
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459
|
Цитата необходимо только помнить, что текс файла, вставляемого по инклуде, будет вставлен в листинг именно в место, где стоит инклуде, и соответствующим образом откомпилирован Уточню, что еще и в той последовательности в которой перечислены. т.е. если ,к примеру,"macros.inc" записать последним файлом в списке включаемых, то макросы для файлов выше по списку "видны" не будут. компилятор выдаст ошибку. В связи с этим нужно внимательно размещать определения в разных файлах, или использовать отдельный файл для всех макросов и ставить его в начало списка (первым в коде).
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|