Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
28.10.2010, 10:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от AJScorp
|
В своих исходниках конечно приятно, и читаемо к тому же. В чужих - совсем наоборот.![Улыбка](images/smilies/icon_smile.gif)
Цель - индикаторная панель датчика загазованности. ARM - слишком круто, а для пика задачка в самый раз. Да и по цене выгоднее в серии.
|
И какого канкретно АРМ на какой конкретно ПИК что цена оказалось ниже.
У меня просто сейчас строго наоборот все.... Особенно с ПИКами.
|
|
|
|
28.10.2010, 10:23
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Школа АRMрестлинга!
Сообщение от AJScorp
|
В Микрочиповском исполнении это выглядит как
TRISA = 0xFF;
TRISB = TRISA;
TRISC = TRISB;
ну и, соответственно, проблемы с неиспользуемыми (нулевыми по чтению) битами по каждому порту
|
Тут ключевыми словами являются В Микрочиповском исполнении. Согласно стандарта языка должно быть сделано:
TRISA = 0xFF;
TRISB = 0xFF;
TRISC = 0xFF;
Скажем IAR генерит
Код:
|
292 Dv[i].wStateReal=Dv[i].bMicroState=0; // Считаем что двигатели в нуле
\ ??workready_0:
\ 00000006 E000 LDI R16, 0
\ 00000008 8300 ST Z, R16
\ 0000000A E010 LDI R17, 0
\ 0000000C 8301 STD Z+1, R16
\ 0000000E 8302 STD Z+2, R16 |
В общем, асмовые вставки вообще не использую.
Во-первых пытаюсь мыслить по-другому.
Во-вторых, учитывая знания ассемблера, пишу на си.
В-третьих, если уж приспичит, пишу законченные процедуры на асме.
В-четвёртых, имеются, как правило, спец функции для использования особенностей проца, не выходя за рамки языка.
Например __enable_irq(); __disable_interrupt(); __swap_nibbles(); и так далее ...
Писать на асме не сложнее, но поддерживать проект сложнее раз в 5. Переносить проект на другой камень - сложнее раз в 100.
|
|
|
|
28.10.2010, 10:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от Gnider
|
И какого канкретно АРМ на какой конкретно ПИК что цена оказалось ниже.
|
LPC2106 - ~$10
PIC24FJ64GA004 - ~$5
|
|
|
|
28.10.2010, 10:38
|
|
Вид на жительство
Регистрация: 21.08.2007
Сообщений: 318
Сказал спасибо: 12
Сказали Спасибо 67 раз(а) в 61 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от AJScorp
|
LPC2106 - ~$10
PIC24FJ64GA004 - ~$5
|
LPC2xxx довольно старые и дорогие контроллеры. Думаю аналог из LPC13xx или LPC17xx подобрать можно. В крупных конторах, например как mt-system (в саратове вроде его нет) о ценах в $5 на ARM даже и не знают.
|
|
|
|
28.10.2010, 10:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
; 0001 001E tmp=tmp››1;
MOV R30,R19
LDI R31,0
ASR R31
ROR R30
MOV R19,R30
Пример Си-шного кода в CVAVR- ВСЁ !ЧЕСТНО! (когда нужно о дальнейшем подумать, Разработчика не Передумать, вот и, подстраховка идёт , Любой Компилятор так поступает! 2 команды- для снятия флагов, А кому требуется- просто ROR сделает , куда переполнение,ноль вылезет- его заботы)
Последний раз редактировалось OlegNZH; 28.10.2010 в 10:45.
|
|
|
|
28.10.2010, 10:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от AJScorp
|
LPC2106 - ~$10
PIC24FJ64GA004 - ~$5
|
Ну у нас в Питере lpc2106 стоит 150р в серии. PIC24 под 200р цена.
Помоему действительно либо старшие lpc13 либо младшие Lpc17. А еще STM32 есть...
|
|
|
|
28.10.2010, 10:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от Cybermaker
|
LPC2xxx довольно старые и дорогие контроллеры.
|
Согласен, но проблема в том, что есть несколько серийных устройств на этой базе. Времени на переделку сейчас никто не даст.
Может и есть пин-ту-пин совместимые из новых, просто не искал.
|
|
|
|
28.10.2010, 10:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от OlegNZH
|
; 0001 001E tmp=tmp››1;
MOV R30,R19
LDI R31,0
ASR R31
ROR R30
MOV R19,R30
Пример Си-шного кода в CVAVR- ВСЁ !ЧЕСТНО! (когда нужно о дальнейшем подумать, Разработчика не Передумать, вот и, подстраховка идёт , Любой Компилятор так поступает! 2 команды- для снятия флагов, А кому требуется- просто ROR сделает , куда переполнение,ноль вылезет- его заботы)
|
Си на 8-битниках не жилец. Изначально 8-битники разрабатывались под асм,а Си к ним потом портировали когдапоявилось много внутренней памяти.
Поэтому я не вижу смысла рассматривать Си на 8-битниках. И так понятно что компилятору трудно все оптимизировать в таких ограниченных рамках.
|
|
|
|
28.10.2010, 10:58
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 356
Сказал спасибо: 21
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Изначально начинал с Си для AVR-ок, через 2 года изучил асм (тоже для AVR) сейчас пишу на обоих языках одновременно. Так как мои девайсы состоят из нескольких микроконтроллеров. Графическую часть на ATmega32 измерительно-управляющую на чистом асме ATmega48 (как пример). Иногда в Си вставляю ассемблерные вставки, в виду того что некоторые стандартные функции компилятора сделаны весьма и весьма криво. Правда пока из семейства AVR не вылез. Изучаю MSP430 и STM8. Считаю что-то может быть удобным пока оно тебя устраивает.
То что на асме многа букафф, это не проблема ибо никто инклуды не отменял. Известно, что опыт программиста складывается из наработанных программ которые которые в итоге упаковываются в формате xxx.inc или xxx.h, xxx.lib. И не без известно что когда пишется и отрабатывается например библиотека под дисплей она занимает не меньше времени чем на асме ибо часто используется битовое управление + происходит это всё в обнимку с оциллографом. Так что скорость вашего кнопкодавства решит 1... 7 % времени. Да и процес может состоять из "копировать-вставит", подправить используемые регистры автозаменой. Ну а далее вставил свою проверенную отработанную библиотеку, спокойно вызвал функцию (подпрограмму) и побежал дальше.
Си для меня читаемый, ибо с него начал, поэтому часто быстро проверяю алгоритм с CV тут же копирую код из листинга асм, переношу в студию, правлю и укорачиваю те места где компилятор "не-подеццки тупит". Си весьма удобный инструмент.
Мне неприятно что многие судят о ассемблере, совершенно не зная его, а собственное суждение составляют из того что вот "кто-то сказал, значит я тоже так буду думать", сам так и не написав ни одного серьёзного проекта по правилам асма (а не в виде длинного столбика инструкций без комментариев и без нормального именования меток переходов). Мне неприятно что многие страстно избегают Си возвеличивая плотность и скорость кода, хотя это не всегда нужно, а нужно как можно скорее "выплюнуть" сопливый проект который просто устанавливается в кое-какой корпус, что-бы не слинял заказчик. Я не преверженец этого, но иногда и без такого подхода никак.
Последнее: Какую часть времени проекта занимает программирование? Конечно можно сказать что истинное радиоГубительское творчество это стандартный сопливый макет (как говорит мой товарищ "до#uya МГТФ-а"), или плата в стандарте ЛУТ. Часто это всё даже не сопровождается схемой.
__________________
Делая дело нужно в него верить на все 100%, иначе неизбежно будут возникать ошибки подпитывающие подсознательное сомнение.
|
|
|
|
28.10.2010, 11:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
AVR изначально уже под С строились , даже , когда кристаллы на подходе , корректировались, с учётом компилятора, который вроде готов уже был.(ссылки не просите ![Обижен](images/smilies/icon_beee.gif) )
upd. это 2 Gnider
Последний раз редактировалось OlegNZH; 28.10.2010 в 11:05.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:16.
|
|