Jump to content

    

Странное поведение компиллятора MicroC PRO for PIC

42 минуты назад, Oymyacon сказал:

программирование именно этих семейств на ассемблере оптимальнее и корректнее, даёт более сжатый код. А после Си одни переключения банков заметную долю кода занимают. Про умножение и деление вообще молчу. 

А разве у ТС не хватает быстродействия процессора? Или может быть памяти под код не хватает? Причём тут оптимальность вообще??? Прочитайте первый пост.

Share this post


Link to post
Share on other sites
7 hours ago, jcxz said:

А разве у ТС не хватает быстродействия процессора? Или может быть памяти под код не хватает? Причём тут оптимальность вообще??? Прочитайте первый пост.

Так это Вы читать не желаете!

Я уже предложил способ анализа компилятора-"нЕслуха" с помощью ассемблера. Думаю, что вы не знаете, что такое ассемблер, иначе бы не несли чушь.

Share this post


Link to post
Share on other sites

Ох, ща будет заруба:popcorm1:

Не нужен тут ассемблер, достаточно создать проект с минимальным функционалом, реализующим взаимодействие с датчиком. Потом переопределить ножку МК и еще раз проверить.

Ставлю на то, что настройка этого пина перезатирается инициализацией другого модуля.

Share this post


Link to post
Share on other sites
В 10.07.2019 в 14:21, Tanya сказал:

Смотрим листинг - там пусто

Объектного, надо полагать, т.е. вопрос темы исключительно про компилятор, почему не добавляет именно эту пару строк, потому что если бы это было следствием ограничения халявы, он отрезал бы произвольный кусок от старого, или издал вопль.

Share this post


Link to post
Share on other sites

Ларчик открылся. Ошибка была в вызывающей программе. Перепуталась (я) единица и l (латинская л).

Share this post


Link to post
Share on other sites
23 hours ago, Oymyacon said:

Наоборот, убогие ассемблер и архитектура PIC12/16 не располагает к оптимальной компиляции Си, поэтому программирование именно этих семейств на ассемблере оптимальнее и корректнее, даёт более сжатый код. А после Си одни переключения банков заметную долю кода занимают. Про умножение и деление вообще молчу. Например, умножение на константу проще сделать в ассемблере.

Когда я только осваивал ПИКи, каждый день просиживал на форумах, посвящённых Микрочипу. Тогда ещё и легендарный 84-ый был в ходу...

Естественно, перманентно вёлся холивар Си vs Ассемблер. Регулярно появлялся очередной архаровец, утверждающий, что такой короткий и быстрый код, как он написал на ассемблере, невозможно написать на Си. И практически неизменно бывал посрамлён. Наверное, не будет преувеличением сказать, что на 12/16 сериях выпускается миллионы устройств. Но покажите мне программистов, которые пишут сегодня для них на ассемблере. Может, Вы?

На 16-й серии вполне даже себе крутится RTOS. Хотя, я бы отнёс это, скорее, к разряду курьёзов.

Вы же и вовсе заявляете о "несовмесности Си и PIC12/16". Слишком категоричное утверждение, мягко говоря. Несмотря на убогую архитектуру, компилятор HT PICC даже ранних версий вполне успешно с ней справлялся. Вот и в данном случае мы видим напраслину... Отсутствие же аппаратного умножителя здесь и вовсе ни при чём.

 

Share this post


Link to post
Share on other sites
1 hour ago, Herz said:

Естественно, перманентно вёлся холивар Си vs Ассемблер. Регулярно появлялся очередной архаровец, утверждающий, что такой короткий и быстрый код, как он написал на ассемблере, невозможно написать на Си. И практически неизменно бывал посрамлён.

Разумеется, программёров в разы больше, чем схемотехников. Не иначе, как всей толпой затыкали рот. Обычно, какие-либо примеры сравнения кодов в ассемблере и после компилятора Си я в таких темах не видел, главным доводом было: "Сам дурак!" Как и здесь )

Share this post


Link to post
Share on other sites
5 minutes ago, Oymyacon said:

Разумеется, программёров в разы больше, чем схемотехников. Не иначе, как всей толпой затыкали рот. Обычно, какие-либо примеры сравнения кодов в ассемблере и после компилятора Си я в таких темах не видел, главным доводом было: "Сам дурак!" Как и здесь )

А схемотехники-то тут причём? Вы, батенька, что-то совсем уж лишь бы что пишете...

Я как раз про сравнения листингов и говорю, я их видел. И говорю "посрамлён", а не "заклёван" именно на этом основании. И вот что значит "как и здесь"? Хотите сказать, что Вас тут не переубедили, а заткнули рот? Оскорбили? Чем?

Я не агитирую Вас использовать Си на ПИКах, дело хозяйское. Но не надо чушь писать о "несовместности". Как видите, и на этот раз всё нормально совместилось. Не виноваты здесь, ни мк, ни Си.

 

Share this post


Link to post
Share on other sites
1 hour ago, Herz said:

Не виноваты здесь, ни мк, ни Си.

Си как раз и виноват ;) 

Share this post


Link to post
Share on other sites
1 час назад, Oymyacon сказал:

Си как раз и виноват ;) 

Мартышка к старости слаба глазами стала;
А у людей она слыхала,
Что это зло еще не так большой руки:
Лишь стоит завести Очки.
Очков с полдюжины себе она достала;
Вертит Очками так и сяк:
То к темю их прижмет, то их на хвост нанижет,
То их понюхает, то их полижет;
Очки не действуют никак.
"Тьфу пропасть! — говорит она, — и тот дурак,
Кто слушает людских всех врак:
Всё про Очки лишь мне налгали;
А проку на-волос нет в них".
Мартышка тут с досады и с печали
О камень так хватила их,
Что только брызги засверкали.

К несчастью, то ж бывает у людей:
Как ни полезна вещь, — цены не зная ей,
Невежда про нее свой толк все к худу клонит;
А ежели невежда познатней,
Так он ее еще и гонит.

 

Да.... опять вся беда от очков... как всегда....  :russian_ru:  :biggrin:

Share this post


Link to post
Share on other sites
1 hour ago, jcxz said:

Да.... опять вся беда от очков... как всегда....  :russian_ru:  :biggrin:

А вот Таню мы вам в обиду не дадим. А ну-ка, немедленно извинитесь перед дамой!

Share this post


Link to post
Share on other sites
8 hours ago, Oymyacon said:

Си как раз и виноват ;) 

Ага, он оказался крайним. Сами не видите противоречия в сказанном:

10 hours ago, Herz said:

убогие ассемблер и архитектура PIC12/16 не располагает к оптимальной компиляции Си, поэтому программирование именно этих семейств на ассемблере оптимальнее и корректнее

?

6 hours ago, Oymyacon said:

А вот Таню мы вам в обиду не дадим. А ну-ка, немедленно извинитесь перед дамой!

А это уже, ИМХО, граничит с хамством. Пост был адресован Вам.

Share this post


Link to post
Share on other sites
10 hours ago, Herz said:

Но покажите мне программистов, которые пишут сегодня для них на ассемблере. Может, Вы?

Можете посмотреть на меня. Я пишу для 16-й серии на асме.

ИМХО - нет хороших или плохих контроллеров, есть задачи для которых не подходит данный мк. Соответственно ни ассемблер не рулит, ни С не рулит, а рулит уместность в данном конкретном случае.

Share this post


Link to post
Share on other sites
8 hours ago, Herz said:

Ага, он оказался крайним. Сами не видите противоречия в сказанном:

?

А это уже, ИМХО, граничит с хамством. Пост был адресован Вам.

У меня зрение 1, никогда не носил очков. Хамло - это чмо, опубликовавшее единственный листинг в теме.

За Си тоже отвечу - очень глючное дерьмо.

Поставишь  запятую вместо точки - всё проглотит и откомпилирует.

А потом вот такие темы дебильные...

Share this post


Link to post
Share on other sites

Си проглотил и перевалил букву вместо цифры.

Си - не виноват. Он таким дебилом родился (((

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this