|
|
  |
Компилятор С for PIC |
|
|
|
Feb 26 2011, 16:44
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(Сергей Борщ @ Dec 17 2007, 12:18)  Код #define LED A, 1, H #define _setH(port,bit) LAT##port |= (1 << bit) #define _clrH(port,bit) LAT##port &= ~(1 << bit) #define _set(port,bit,val) _set##val(port,bit) #define on(x) _set (x) #define _clr(port,bit,val) _clr##val(port,bit) #define off(x) _clr (x)
void Test() { on(LED); off(LED); } Не компилится. Путается в количестве аргументов. Даа... , я как понимаю влезь в ухо и вылези через ж..у.  Это так буквально программисты понимают слово кодирование. :-) Не обижайтесь Сергей, просто зачем так, даже если это только пример?
|
|
|
|
|
Feb 27 2011, 17:02
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(zltigo @ Feb 26 2011, 18:03)  Незабвенная Эллочка-людоедка тоже не смогла-бы оценить ни одно литературное произведение - уж больно у нее словарный запас и круг потребностей был мал. :-) Ваш юмор понятен:-). Просто когда программисты, в этих трёх строчках, ошибки ищут по три месяца, тогда да.... Кстати, в двоичном кодировании 2 знака и всё прекрасно, а можно было и все 33 буквы русского могучего использовать - представляете, как бы выглядели эти сочинения! :-) Имхо, чем проще написан код, тем работоспособнее он, отпадает зависимость от своеобразностей разных компиляторов, повышается читаемость итд. итп.
|
|
|
|
|
Feb 27 2011, 17:14
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (andron86 @ Feb 27 2011, 20:02)  Просто когда программисты, в этих трёх строчках, ошибки ищут по три месяца Может это на самом деле не программисты??? QUOTE тем работоспособнее он, отпадает зависимость от своеобразностей разных компиляторов, повышается читаемость итд. итп. Вот именно с этой целью подобные макросы и пишутся (правда классические ляпы с экономией () в этих присутствуют  ). Хотя лично я подобными не пользуюсь (интересует обычно более высокие уровни абстракции), но это уже мое личное.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 27 2011, 17:25
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(zltigo @ Feb 27 2011, 18:14)  именно с этой целью Как раз эта цель и привела к тому, что компилятор оказался не работоспособен. Цитата(zltigo @ Feb 27 2011, 18:14)  Может это на самом деле не программисты??? Может. Не все художнинки аля Малевич.
|
|
|
|
|
Feb 27 2011, 18:29
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(zltigo @ Feb 27 2011, 18:14)  интересует обычно более высокие уровни абстракции Sorry за флуд :-) я это в этом контексте понимаю: Цитата С точки зpения банальной эpудиции, каждый индивидуум, кpитически мотивиpующий абстpакцию, не может игноpиpовать кpитеpии утопического субьективизма, концептуально интеpпpетиpуя общепpинятые дефанизиpующие поляpизатоpы. Поэтому консенсус, достигнутый диалектической матеpиальной классификацией всеобщих мотиваций в паpадогматических связях пpедикатов, pешает пpоблему усовеpшенствования фоpмиpующих геотpансплантационных квазипузлистатов всех кинетически коpеллиpующих аспектов. Исходя из этого, мы пpишли к выводу, что каждый пpоизвольно выбpанный пpедикативно абсоpбиpующий обьект pациональной мистической индукции можно дискpетно детеpминиpовать с аппликацией ситуационной паpадигмы коммуникативно-функционального типа пpи наличии детектоpно-аpхаического дистpибутивного обpаза в Гильбеpтовом конвеpгенционном пpостpанстве, однако пpи паpаллельном коллабоpационном анализе спектpогpафичеких множеств, изомоpфно pелятивных к мультиполосным гипеpболическим паpаболоидам, интеpпpетиpующим антpопоцентpический многочлен Hео-Лагpанжа, и возникает позиционный сигнификатизм гентильной теоpии психоанализа, в pезультате чего надо пpинять во внимание следующее: не только эзотеpический, но и экзистенциальный аппеpцепциониpованный энтpополог антецедентно пассивизиpованный высокоматеpиальной субстанцией, обладает пpизматической идиосинхpацией. Но так как валентностный фактоp отpицателен, то и, соответственно, антагонистический дискpедитизм дегpадиpует в эксгибиционном напpавлении, поскольку, находясь в пpепубеpтатном состоянии, пpактически каждый субьект, меланхолически осознавая эмбpиональную клаустоpофобию, может экстpаполиpовать любой пpоцесс интегpации и диффеpенциации в обоих напpавлениях, отсюда следует, что в pезультате синхpонизации, огpаниченной минимально допустимой интеpполяцией обpаза, все методы конвеpгенционной концепции тpебуют пpактически тpадиционных тpансфоpмаций неоколониализма. Hеоколонии, pазмножающиеся почкованием, имеют вегетационный пеpиод от тpех до восьми фенотипических гомозигот, но все они являются лишь фундаментальным базисом социогенетической надстpойки кpиогенно-кpеативного пpоцесса геpонтологизации. Увеличить этот базис можно с помощью гектаплазменного ускоpителя биоинеpтных коллоидных клеток контагиозной конкpетизации, однако введение конкpетизации влечет за собой пpименение методов теоpии множеств и дистpибутивного анализа, что обусловлено тем, что тpансцендентальная поликонденсация неpоноспоpы в пеpплексном хаосе может инбабулиpовать комплексный моpфоз только тогда, когда конституент доминанты квазитенденциально унивеpсален, и пpоисходит довольно внезапно. Очевидно, что все вышесказанное пpоливает свет на теоpию пpедикативных ощущений субъекта, абсолютно нефункциональных в условиях абстpактного хаоса. Цитата(Сергей Борщ @ Feb 27 2011, 19:19)  Это тараканы препроцессора. Если он не отвечает стандарту - макросы тут не при чем. Полагаю, вы не поняли всех прелестей этих макросов, поэтому они вам и показались слишком сложными. Сергей, да не показалось мне это сложным, просто смотри цитату выше, можно многие элементарные выражения так завуалировать, что это не всем понятно будет, особенно компилятору.
|
|
|
|
|
Feb 28 2011, 10:06
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (andron86 @ Feb 27 2011, 20:29)  можно многие элементарные выражения так завуалировать, что это не всем понятно будет, особенно компилятору. Можно. Но нужно это делать только тогда, когда нужно. В данном случае - нужно, этим достигается необходимая функциональность. Конкретный компилятор не отвечает стандарту. Меня не беспокоит каким образом он будет пытаться понимать, как он должен понять - описано в стандарте.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 5 2011, 05:56
|

Участник

Группа: Участник
Сообщений: 54
Регистрация: 7-08-08
Из: SPb
Пользователь №: 39 471

|
Цитата(_Макс @ Feb 26 2011, 19:56)  Что можно использовать для PIC10? IAR и MPLAB его не поддерживают  HT-PICC и CCS
|
|
|
|
|
Mar 13 2011, 18:46
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 13-03-11
Пользователь №: 63 577

|
Подскажите ПЛЗ простейший исходник для тестирования компилятора. (Стыкую MPLAB IDE с HT_PICC, толку мало - не компилится.)
|
|
|
|
|
Mar 13 2011, 20:52
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(loghir @ Mar 13 2011, 20:46)  Подскажите ПЛЗ простейший исходник для тестирования компилятора. (Стыкую MPLAB IDE с HT_PICC, толку мало - не компилится.) Какое семейство и какой компилятор? надеюсь не PRO ? для PIC18 Код #include <pic18.h> void main(void) { } для PIC16: Код #include <pic.h> void main(void) { } ну и конечно в мплабе семейство соответствующее выбрать нужно.
|
|
|
|
|
Mar 14 2011, 09:41
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 13-03-11
Пользователь №: 63 577

|
Ruslan1, спасибо!
МК - PIC16F628
В MPLAB IDE 8.46 компиляция не идет ни с Hi-Tech PIC C-compiler v9.60 std, ни с Hi Tech PICC v8.05pl2. (Оба активированы). Еще у меня есть MPLAB IDE v8.30, буду с ним пробовать.
|
|
|
|
|
Mar 14 2011, 11:18
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 13-03-11
Пользователь №: 63 577

|
Поставил MPLAB IDE v8.30. (перезагрузил комп) В окне создания проекта выбрал как на картинке: Создал файл, подключил к проекту. Код #include <pic.h> void main(void) { } Пишет ошибку: Цитата Build D:\Work\C\test_9_6 for device 16F628A Using driver C:\Program Files\HI-TECH_9.60\bin\picc.exe
Executing: "C:\Program Files\HI-TECH_9.60\bin\picc.exe" -q -g --asmlist --chip=16F628A "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s" -P --char=unsigned -C D:\Work\C\test11.c Warning [176] D:\Work\C\test11.c; 4.0 missing newline Warning [337] D:\Work\C\test11.c; 3.1 line does not have a newline on the end Может, надо было не picc.exe подключать?
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 14 2011, 13:02
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(loghir @ Mar 14 2011, 14:18)  Создал файл, подключил к проекту. Код #include <pic.h> void main(void) { } Пишет ошибку: Цитата Warning [176] D:\Work\C\test11.c; 4.0 missing newline Warning [337] D:\Work\C\test11.c; 3.1 line does not have a newline on the end Warning - предупреждение. missing newline, line does not have a newline on the end - компилятор предупреждает, что программа не заканчивается символом перевода строки. Эти предупреждения на работе программы точно не скажутся, просто неаккуратненько. Описания сообщений об ошибках и предупреждениях см. в docs\manual.pdf в каталоге установки компилятора. Не забудьте воспользоваться англо-русским словарём. Цитата Может, надо было не picc.exe подключать? Universal Toolsuite всё делает за Вас, и уже достаточно давно делает это правильно. Если сомневаетесь, ответы в docs\quickstart.pdf и хелпах мплаба.
|
|
|
|
|
Mar 14 2011, 21:19
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(loghir @ Mar 14 2011, 11:41)  Ruslan1, спасибо!
МК - PIC16F628
В MPLAB IDE 8.46 компиляция не идет ни с Hi-Tech PIC C-compiler v9.60 std, ни с Hi Tech PICC v8.05pl2. (Оба активированы). Еще у меня есть MPLAB IDE v8.30, буду с ним пробовать. 1. как я понял, у вас уже все идет. поздравляю.  2. Если глючит на такой программе- то что-то с установкой компилятора не так. Насколько я помню, у Хайтека есть что-то бесплатное, но с ограничениями. на попробовать вполне хватит. 3. Я сам PIC16 давно не пользовал, PIC18 их покрыли как бык овцу, но нареканий не было, и PIC18 с Хайтеком отлично работает (только не PRO!). Но вот если Вы собираетесь на что-то более современное майкрочиповское переходить в перспективе- наверное лучше сразу Майкрочиповские компиляторы брать, Хайтек это тупик. Но вроде бы как раз для PIC16 и выбора нет, только hi-tech. 4. А чего МПЛАБ такой старый, вроде 8.56 уже есть. Если уж переставляете, то наверное новье не хуже старья будет
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|