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

 
 
> Посоветуйте С -компилятор для PIC16
Anty
сообщение May 13 2008, 07:11
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 13-03-08
Пользователь №: 35 878



Доброго времени суток. Короче, есть проблема: написано часть программы (весомая часть) на ассемблере, и часть на С. Хотелось бы вставить в код программы на С часть на ассемблере и все это дело откомпилировать. Может глуповато чуть-чуть, но просто переписывать какую- либо из частей не хочется, да уже и время подпирает.
И еще вопрос: если делать вставку в С' шный текст асмовского кода, будет компилятор видеть все регистры (OPTION_REG,INTCON,STATUS и т.д.), или там как-нибудь надо будет их хитрым образом описывать?
Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
asmon
сообщение May 13 2008, 12:23
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 20-03-07
Из: Днепродзержинск
Пользователь №: 26 344



Да, пожалуй, для 16 пиков лучше хайтека сишных компиляторов не найти. Вот 18 и выше - это другое дело. Тут, как говорится, есть варианты.
Итак OPTION_REG,INTCON,STATUS и прочие регистры асм увидит, но вначале каждого нужно ставить нижний пробел, например:

#asm
bcf _STATUS, 0
#endasm

То же самое нужно делать и для объявленных вами глобальных переменных. Например:

char i;
#asm
movlw 0x0D
movwf _i
#endasm

Вот с локальными переменными - проблема. Лучше с этим не заморачиваться, хотя, если очень очень нужно - всегда можно посмотреть асмовский листинг.

И ещё один совсем маленький ньюанс - вставки типа asm("bcf _STATUS, 0") и
#asm
bcf _STATUS, 0
#endasm
отличаются, это важно в циклах. Почитайте даташит.
Go to the top of the page
 
+Quote Post



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

 


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


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