|
|
  |
Посоветуйте С -компилятор для PIC16 |
|
|
|
May 13 2008, 07:11
|
Участник

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

|
Доброго времени суток. Короче, есть проблема: написано часть программы (весомая часть) на ассемблере, и часть на С. Хотелось бы вставить в код программы на С часть на ассемблере и все это дело откомпилировать. Может глуповато чуть-чуть, но просто переписывать какую- либо из частей не хочется, да уже и время подпирает. И еще вопрос: если делать вставку в С' шный текст асмовского кода, будет компилятор видеть все регистры (OPTION_REG,INTCON,STATUS и т.д.), или там как-нибудь надо будет их хитрым образом описывать? Заранее спасибо.
|
|
|
|
|
May 13 2008, 08:45
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 23-10-05
Пользователь №: 10 016

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

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

|
Цитата(vanner @ May 13 2008, 11:45)  В чем вопрос? Бери любой нравящийся компилятор и смотри как использовать ассемблерные вставки и файлы в документации. Особенности оформления ассемблерного текста, вызов функций и т.п. будут там описаны. Ну впринципе да. Так оно и есть. Просто взял скачал с нета какой-то компилятор, просто не разобрался сразу, а он ошибки выдавал - не знал регистры. А потом help почитал, посмотрел примеры и все пошло. А вообще, хочу найти компилятор под MPLAB, просто там как-то все роднее... На сайте microchip'а вроде есть, тока не знаю, вроде там не все подходят для PIC16.
|
|
|
|
|
May 13 2008, 10:49
|
Участник

Группа: Участник
Сообщений: 71
Регистрация: 10-03-07
Пользователь №: 26 038

|
Цитата(Anty @ May 13 2008, 11:11)  Доброго времени суток. Короче, есть проблема: написано часть программы (весомая часть) на ассемблере, и часть на С. Хотелось бы вставить в код программы на С часть на ассемблере и все это дело откомпилировать. Может глуповато чуть-чуть, но просто переписывать какую- либо из частей не хочется, да уже и время подпирает. И еще вопрос: если делать вставку в С' шный текст асмовского кода, будет компилятор видеть все регистры (OPTION_REG,INTCON,STATUS и т.д.), или там как-нибудь надо будет их хитрым образом описывать? Заранее спасибо. Могу посоветовать HI-TECH. Он (HI-TECH LITE) входит в MPLAB 8.0, хотя насколько я знаю, его можно скачать отдельно и прикрутить к MPLAB-у. Сейчас на нем пишу программу для МК PIC16F690. В принципе довольно удобно. Конечно есть свои нюансы, но чтение документации и форум позволяют преодолеть возникающие препятствия. Асмовский код компилятор видеть будет (и регистры OPTION_REG, INTCON, STATUS И т.д.), собственно как и Ваши переменные. Вставить его (асмовский код) можно с использованием, например, директив #asm ... #enasm. Также можно использовать написанные ранее библиотеки (я, к сожалению, пока не знаю как).
|
|
|
|
|
May 13 2008, 12:23
|

Участник

Группа: Участник
Сообщений: 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 отличаются, это важно в циклах. Почитайте даташит.
|
|
|
|
|
May 21 2008, 08:22
|

Участник

Группа: Новичок
Сообщений: 19
Регистрация: 14-04-08
Из: Москва
Пользователь №: 36 755

|
Цитата(Anty @ May 13 2008, 11:11)  Посоветуйте С -компилятор для PIC16 Рекомендую CCS - он ставится автоматом при установке MPLAB 8
|
|
|
|
|
May 21 2008, 12:33
|
Участник

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

|
Цитата(Obama @ May 21 2008, 11:22)  Рекомендую CCS - он ставится автоматом при установке MPLAB 8 Не знаю. Пробовал ставить какой-то CCS, так что-то не разобрался. Он компилит, а что дальше не понятно. У меня MPLAB v.7.20. Скачал HI-TECH, так там нормально. все понял, разобрался, даже уже вроде запустил свое творение. сейчас отлаживаю. Но все равно за совет спасибо.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|