Пост N: 277
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг:
0
Отправлено: 19.07.11 18:32. Заголовок: Спасибо, конечно Але..
Спасибо, конечно Алексей, но ищу точно - BoostC compiler для установки его в MPLAB как инструмент. HI TECH есть у меня. Там доп.язык AS - черт ногу сломит, что ещё. Описание на BoostC нашёл, самого компилятора - не найду. Может не там ищу?
Пост N: 121
Зарегистрирован: 15.03.10
Откуда: Россия, Волжский
Рейтинг:
0
Отправлено: 20.07.11 03:46. Заголовок: да всё спасибо за за..
да всё спасибо за заботу. вообщем не всё так было просто, тут надо было просто знать как что делать, догодатся самаму просто нереально. просто удивительно что родной Си компилятор МСС18 для MPLAB так требует таких заморочек, отличии от тогоже HT-PIC. а надо было сделать так http://www.microchip.su/showpost.php?p=96835&postcount=2
Ситуация проясняется, нЕчего ломать. Ищу систематизированный (более-менее) материал по вставке ASM кода в Си для компилятора HI-TECH PICC. Примеры желательно. Описание компилятора есть. Что-то заклинило меня на совмещение кода С и Assembler От жары, наверное? 35 за бортом неделю. Может кто подскажет литературу для разжёвывания? Или освоил такую вставку и прочтет начальную лекцию? Не сочтите за труд.
Пост N: 281
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг:
0
Отправлено: 23.07.11 15:00. Заголовок: dosikus пишет: Ни к..
dosikus пишет:
цитата:
Ни к чему это ...
Это типа ветрянки, думаю - пройдёт. Просто увидел, как выглядит delay() в ASM из-под Си (штук 6 nop -ов), да и нелинейную ф-ию для PIC через таблицу значений пока не умею через Си. Отсюда и дерганье. Пока подержимся за мамин подол.
Пост N: 285
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг:
0
Отправлено: 01.08.11 20:45. Заголовок: По довольна таки жар..
По довольна таки жаркой дискуссии с заданием __GONFIG. Таблица - не таблица. Для меня однозначно - надо смотреть документацию. Вот работаю в asm - пишу :_WDT_ON , перешёл в С (для HI-TECH) - пишу уже WDTDIS. А для boostc - не знаю пока, что напишу. Документацию надо смотреть.
Пост N: 123
Зарегистрирован: 15.03.10
Откуда: Россия, Волжский
Рейтинг:
0
Отправлено: 29.11.11 20:04. Заголовок: Всем доброе время су..
Всем доброе время суток. В очередной раз занялся изучением языка Си (С18 для PIC) как всегда много непонятного Вот например
unsigned int counter = 69; PORTB = 7;
counter *= PORTB; // выполняется за 48 тактов а вот counter /= PORTB ; // выполняется уже за 239 тактов что является полным бредом для ПИКа с встроенным умножителем. Ведь я в пик 16 на асм, делю двухбайтное число на однобайтное всего за 200 тактов. Как от этого можно избавится и скомпилировать быстрый код.
Пост N: 184
Зарегистрирован: 10.02.11
Откуда: Россия
Рейтинг:
2
Отправлено: 30.11.11 07:58. Заголовок: ОКТОГЕН пишет: что ..
ОКТОГЕН пишет:
цитата:
что является полным бредом для ПИКа с встроенным умножителем.
Полным бредом является то, что Вы тут пишете. Во первых, причём тут умножитель и деление ? Объясните.. Во вторых, где то, с чем можно сравнить результат хайтека ? Мне с трудом верится, что человек, задающий подобные вопросы, сделает лучше чем программисты, создавшие компилятор Си. В третих,
цитата:
counter *= PORTB; // выполняется за 48 тактов
если Вам и это не понятно, то будет Вам известно, что в PIC18 аппаратный умножитель всего 8х8.
Пост N: 298
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг:
1
Отправлено: 08.12.11 08:00. Заголовок: вставка asm в BoostC
Мне было непонятно, как поведет себя вставка блока на asm в программе на С при переходе по страницам и банкам памяти. Выяснил, что компилятор BoostC автоматически выполняет такие переходы у PIC и вставка специальных команд таких переходов, при наличии вставок, не требуется. Вопрос для меня снят. Как ведет себя в этом плане HI-TECH -неизвестно.
вставка блока на asm в программе на С при переходе по страницам и банкам памяти
С трудом представляю такую ситуацию. Ну ладно, можно позволить, в крайнем случае, АСМ вставку. Но что-бы она была ещё и со всякими переходами по страницам и банкам... Вячеслав , для чего Вы переходите на Си ? Что-бы иметь себе мозг АСМовским кодом ? Совсем не понятно...
Пост N: 299
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг:
1
Отправлено: 08.12.11 18:29. Заголовок: Alex пишет: для чег..
Alex пишет:
цитата:
для чего Вы переходите на Си ?
Вопрос достаточно избит. Что лучше С или asm. Три года занимался устройствами на PIC как электроник и конструктор (устройства - мед.приборы). Писал программки на asm. Переход по станицам и банкам был для меня по первости - труден. Технарь, что с меня взять. Пробую на С и - получается. Испытываю на железе. Компилятор позволяет делать вставки в C код, это- я думаю, позволит сократить где-то расходы ресурса PIC. Или формировать торированной длительности импульлосы. Иногда использую PIC12. Пока так. На свой вопрос о переходе по банкам в коде С с asm вставками ответил здесь сам. Alex пишет:
цитата:
Ну ладно, можно позволить, в крайнем случае, АСМ вставку.
Пост N: 300
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг:
1
Отправлено: 10.12.11 06:43. Заголовок: Alex пишет: Почему ..
Alex пишет:
цитата:
Почему Вы выбрали не распространённый компилятор ?
1. Компилятор BoostC входит в состав среды FlowCode for PIC, через которую осваиваю С. 2. Прокомпилированные им программы (xxx.asm и xxx.c ) можно перенести в MPLAB и там использовать средства отладки уже MPLAB. 3. Указанный компилятор имеет некоторые "продвинутые" функции: обслуживание I2C, RS232, LCD, EEPROM ADС,Flash; есть и вкрапления С++. Вот такие мои смешные арументы на текущий момант. Впрочем, какая разница, всё равно Си осваивать придется. (Долби и посматривай) ОКТОГЕН пишет:
цитата:
преобразование двоичных данных в десятичные на Си.
Пост N: 301
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг:
1
Отправлено: 11.12.11 08:16. Заголовок: Не специалист по язы..
Не специалист по языку. Только общие рассуждения дилетанта: 1.Короче чем программой на asm с красивым алгоритмом задачу не решить (может быть вставка asm?); 2.Если на С, то искать неклассический алгоритм для данного случая; 3.Поиграться с задачей, где есть эта функция (напр.- объявить "a" локальной переменной), тогда можно уменьщить расход ресурса в целом; задать компилятору высокий уровень оптимизации. На данном этапе, мне бы вышеприведенные С программки научиться воплощать! Сам надеюсь использовать для средней серии МК функции компилятора bootsc: Lightweight Conversion Functions The standard conversion functions offer a lot of flexibility at the cost of ROM, RAM and execution time. For application that are short of RAM and ROM, or require shorter execution time, it maybe desirable to use the following lightweight functions.(Это из руководства, и только о функциях преобразования) Что это даст конкретно для экономии, пока не знаю. Удачи.
Отправлено: 11.12.11 20:40. Заголовок: ОКТОГЕН пишет: там ..
ОКТОГЕН пишет:
цитата:
там в зависимости от кагого числа. например
А вы думаете на асм сможете ужать эту процедуру хоть на сколько нибудь существенно??? Ну например хотя бы процентов на 20? Или на асме количество циклов не будет зависеть от числа???
Отправлено: 11.12.11 21:21. Заголовок: ОКТОГЕН пишет: там ..
ОКТОГЕН пишет:
цитата:
там в зависимости от кагого числа. например Con2v10(0) ; // выполняется за 46 м.ц. Con2v10(199) ; // выполняется за 374 м.ц.
асм. вставка помогла бы только как её правильно вставить?
Для таких заявлений надо приводить код целиком или же вместе с дизассемблером. Не известно что там наворотит любимый вами бусстс вкупе с Folow . Аналогичное преобразование (в виде урезанной ITOA и вариант ITOBCD) работает у меня в куче проектов от PIC10F до STM32 без нареканий. Что есть м.ц ?
Пост N: 129
Зарегистрирован: 15.03.10
Откуда: Россия, Волжский
Рейтинг:
0
Отправлено: 12.12.11 00:00. Заголовок: Алексей пишет: А вы..
Алексей пишет:
цитата:
А вы думаете на асм сможете ужать эту процедуру хоть на сколько нибудь существенно??? Ну например хотя бы процентов на 20? Или на асме количество циклов не будет зависеть от числа???
на асеме эта процедура занимает более чем в 2 раза меньшее время. dosikus пишет:
цитата:
Для таких заявлений надо приводить код целиком или же вместе с дизассемблером.
MPLAB позволяет видить си код в ассемблерных командах, и для своей конструкции этот синтезировался адекватно. просто думал мож у каво есть более быстрый алгоритм, илиже знает встроенную в компилятор MCC18 функцию.
Отправлено: 12.12.11 00:51. Заголовок: ОКТОГЕН пишет: на а..
ОКТОГЕН пишет:
цитата:
на асеме эта процедура занимает более чем в 2 раза меньшее время.
Значит ваш компилятор генерируют совсем не адекватный код. ОКТОГЕН пишет:
цитата:
илиже знает встроенную в компилятор MCC18 функцию.
При чем здесь MCC18 ??? У вас же другой компилятор... Если вы имеете в виду стандартные функции С , то они вас не удовлетворят . Ибо универсальные и код распухнет
Пост N: 130
Зарегистрирован: 15.03.10
Откуда: Россия, Волжский
Рейтинг:
0
Отправлено: 12.12.11 21:06. Заголовок: а можно знаете что о..
а можно знаете, что один и тотже проект скомпилировать в разных средах, и по результатам определить какая среда лучше. думаю это может быть интересным. 1) FC - как среда освоения С 2) MCC18 3) HI-TEC три среды уже есть
Отправлено: 12.12.11 21:22. Заголовок: Вячеслав пишет: FC ..
Вячеслав пишет:
цитата:
FC - как среда освоения С. Очень наглядная и алгоритмы рисует. Для моих простых задач годится. Удачи.
Собственно советы и опыт вам, я так понял не нужны. Хотите шишки сами набивать ? Весьма похвально. Одно но, запомните - вы изучаете ни как не С , а визуальную IDE FlowCode. А это разные вещи. ОКТОГЕН, 1) FC - 2) MCC18 3) HI-TEC Первое выкинуть не задумываясь...
Собственно советы и опыт вам, я так понял не нужны.
Туда не ходи, это не ешь. Пройдено давно. Где-то с мая занимаюсь в фоновом режиме с FC. Чужой опыт хорошо, свой больше помниться. FC - всего-то учебник по С. Никаких чудес. Очередная подпорка в освоении для меня нового. Можно сказать - ковыряюсь в "песочнице". Суп из топора - старая сказка. Топор - это FC. Но без топора, что была бы за сказка? Пришёл солдат наколпачил бабушку? Романтика где? dosikus пишет:
цитата:
визуальную IDE FlowCode.
Пока не так. Получив "скелет" задачи в FC с её возможностями (знать бы где у неё они кончаются?), откатываюсь в IDE MPLAB, т.к. FC в гробу видела вставки мои, и С и asm. Просто транслирует. Т.е.- есть сложности, нюансы ( кроме освоения языка - разумеется). Пока так. Первые проекты в "железе" работают. Ну, ооочень простые. Да, собственно, не все ли равно как учить С? (Си, сеньор, Си). Берешь учебник, пишешь пример, смотришь результат (хоть в чём). А, если код "влез"в PIC, да железо заработало, то... Лирика, конечно. С уважением.
Семейство PIC18 не обеспечивает аппаратную поддержку операции деления целых чисел. Типовая операция деления 16/16 бит и 16/8 бит с использованием стандартной библиотеки математических функций PIC18 занимает как минимум 38 командных тактов.
Отправлено: 24.03.12 23:51. Заголовок: Ну если действительн..
Очевидно, что хочется получить очень быстрое деление 16/8 за 38 тактов. А если это действительно так то ничто не мешает использовать эту библиотеку. Может просто чудес не бывает???
Пост N: 326
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг:
1
Отправлено: 25.03.12 09:16. Заголовок: Alex, на твой пост ..
Alex, на твой пост №131. Лучше поздно.. Спасибо, Alex. Информация мне полезная, жаль без продолжения. У меня получается так, что после компиляции из под FC с компилятором BoostC, программу вижу в MPLAB с установленным компилятором HI-TECH и там можно компилировать эту программу. Видимо программы мои простые и команды попадают в общую зону определений для обоих компиляторов( "Си оно и в Африке Си"). Или что-то в этом смысле. Возможно, когда доберусь до смешанных функций (если доберусь ) типа I2C и появятся отличия в определениях. Иногда делаю ещё проще: получаю исходник после FC, перехожу в Протеус с прицепленным к МК файлом xxx.cof, редактором типа ConTEXT правлю программу (на сколько ума хватает и только простые операции) и вновь смотрю - что получилось в Протеусе. Может путь и не совсем правильный. Пока так осваиваю Си. С уважением.
Все даты в формате GMT
3 час. Хитов сегодня: 5
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет