Перейти к содержанию
    

Посоветуйте С -компилятор для PIC16

Доброго времени суток. Короче, есть проблема: написано часть программы (весомая часть) на ассемблере, и часть на С. Хотелось бы вставить в код программы на С часть на ассемблере и все это дело откомпилировать. Может глуповато чуть-чуть, но просто переписывать какую- либо из частей не хочется, да уже и время подпирает.

И еще вопрос: если делать вставку в С' шный текст асмовского кода, будет компилятор видеть все регистры (OPTION_REG,INTCON,STATUS и т.д.), или там как-нибудь надо будет их хитрым образом описывать?

Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В чем вопрос? Бери любой нравящийся компилятор и смотри как использовать ассемблерные вставки и файлы в документации. Особенности оформления ассемблерного текста, вызов функций и т.п. будут там описаны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В чем вопрос? Бери любой нравящийся компилятор и смотри как использовать ассемблерные вставки и файлы в документации. Особенности оформления ассемблерного текста, вызов функций и т.п. будут там описаны.

 

Ну впринципе да. Так оно и есть. Просто взял скачал с нета какой-то компилятор, просто не разобрался сразу, а он ошибки выдавал - не знал регистры. А потом help почитал, посмотрел примеры и все пошло. А вообще, хочу найти компилятор под MPLAB, просто там как-то все роднее... На сайте microchip'а вроде есть, тока не знаю, вроде там не все подходят для PIC16.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток. Короче, есть проблема: написано часть программы (весомая часть) на ассемблере, и часть на С. Хотелось бы вставить в код программы на С часть на ассемблере и все это дело откомпилировать. Может глуповато чуть-чуть, но просто переписывать какую- либо из частей не хочется, да уже и время подпирает.

И еще вопрос: если делать вставку в С' шный текст асмовского кода, будет компилятор видеть все регистры (OPTION_REG,INTCON,STATUS и т.д.), или там как-нибудь надо будет их хитрым образом описывать?

Заранее спасибо.

 

Могу посоветовать HI-TECH. Он (HI-TECH LITE) входит в MPLAB 8.0, хотя насколько я знаю, его можно скачать отдельно и прикрутить к MPLAB-у. Сейчас на нем пишу программу для МК PIC16F690. В принципе довольно удобно. Конечно есть свои нюансы, но чтение документации и форум позволяют преодолеть возникающие препятствия. Асмовский код компилятор видеть будет (и регистры OPTION_REG, INTCON, STATUS И т.д.), собственно как и Ваши переменные. Вставить его (асмовский код) можно с использованием, например, директив #asm ... #enasm. Также можно использовать написанные ранее библиотеки (я, к сожалению, пока не знаю как).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, пожалуй, для 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

отличаются, это важно в циклах. Почитайте даташит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посоветуйте С -компилятор для PIC16

 

Рекомендую CCS - он ставится автоматом при установке MPLAB 8

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендую CCS - он ставится автоматом при установке MPLAB 8

 

Не знаю. Пробовал ставить какой-то CCS, так что-то не разобрался. Он компилит, а что дальше не понятно. У меня MPLAB v.7.20. Скачал HI-TECH, так там нормально. все понял, разобрался, даже уже вроде запустил свое творение. сейчас отлаживаю.

Но все равно за совет спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...