На чем писать  

551 пользователь проголосовал

  1. 1. Что чаще используете в разработках?

    • Assembler
      151
    • C
      280
    • Что-то еще
      59


383 сообщения в этой теме

gunya    0

Я в техникуме изучал асемблер для I8051,щас научился писать програмы для авр на асемблере.Хотелось бы выучить СИ,если у кавото есть книги для начинающих в СИ,дайте ссылку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
$david$    0

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

без него то не куда . И кстати я так понял лучше пользоваться такими компиляторами как IAR ну и GCC то есть без встроеных библиотек чтоб без проблем потом переехать ежели чего на другой кристал или компилятор ИМХО это очень удобно

Изменено пользователем $david$

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Skazzi    1

в универе учили за семестр все 3 микроконтроллера (ну всмысле аврку, пик и 51) и естессно только на асм. это первый язык программирования, который мне понравилсо! помню как я ненавидила писать курсачи и лабы на сотни страниц на с++, а тут все понятно, по полочкам (регистрам)) расставляеш как тебе удобно.. жаль, что мало пар было, но собираюсь изучать дальше.

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
pirotehnick    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
letni    0

хорошо знать и асм и си.. а там все зависит от поставленной задачи

асмовские вставки в си иногда очень хорошо помагают

хотя все же большее предпочтение отдаю Си, там все одинаково и для всех одинаково

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
aahz    0

когда начинал писать программы на ассемблере для старого-доброго синклера, уяснил, что сначала нужно блок-схему составить, а уж потом, программу писать. так вот, Algorithm Builder это оптимальный вариант: составляется блок-схема и ЭТО И ЕСТЬ программа. хотелось бы узнать мнение других людей по поводу работы в Algorithm Builder.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ilmar    0

Для с51 контролера пишу на Bascom-8051(Бейсик но с небольшими своими особенностями :) ) , сейчас заказал AVR микрухи и наверно буду писать уже пожалуй на Bascom-AVR ( то же самое но с поправками на авр).

К сожалению си знаю плохо :( , неплохо знаю паскаль, но жаль для МК такие языки не встречаются :(

На Асме писать пожалуй конечно хорошо, и код маленький и проц менее загружен, но для этого надо знать полностью архитектуру соответствующего контролера. А я больше любитель , чем профессионал, и поэтому изучать каждый МК времени не хватит :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sergyk    0

Бесполезный спор!!!!!!! Сначала ставиться задача под нее выбирается камень,а потом основываясь на задачи и типе камня выбирается язык и составляется алгоритм!!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Migray    5

Сначала ставится ЗАДАЧА, потом составляется АЛГОРИТМ, ну и только после этого можно что-то сказать о камне.

Ну а про язык я уже писал, наиболее оптимальный СИ, ну естественно с возможными вставками ассемблера, в наиболее критических местах.

На голом асме большой проект с математикой сложно написать.

Среда программирования - на вкус, наверно.

Я предпочитаю IAR, в силу ее универсальности, т.е. она работает практически с любым МК.

Да и возможности отладки там хорошие.

Хотя для западных стран эта среда стоит денег.

P.S. Не вижу большой разницы между Си и Паскалем.

Организация циклов и структура программы одинакова.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    95
Сначала ставится ЗАДАЧА, потом составляется АЛГОРИТМ, ну и только после этого можно что-то сказать о камне.

Зачастую алгоритм сильно зависит от возможностей применяемого камня. Поэтому после ЗАДАЧИ идет ТЕХНИКО-ЭКОНОМИЧЕСКИЙ РАСЧЕТ из нескольких итераций, в котором участвуют подходящие камни с оценкой затрат на программирование оных. Меньше флэша - стоимость камня меньше, затраты на программирование (степень детализации алгоритма) больше, и наоборот... Поэтому, АЛГОРИТМ и выбор камня скорее параллельные процессы...

P.S. Не вижу большой разницы между Си и Паскалем.

Здесь была обширная дискуссия по этому поводу...

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

Зато реализующий код существенно длиннее

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Migray    5
P.S. Не вижу большой разницы между Си и Паскалем.

Здесь была обширная дискуссия по этому поводу...

Потому я и не появляюсь больше на электрониксе, слишком много пустой болтовни.

Компиляторов Паскаля для МК не много, не для всех камней есть, и с этим основные проблемы.

Но в свое время, примерно в 92-м году изучал Паскаль и Си для персоналок, потом естественно Дельфи и Билдер, без проблем могу написать прогу на том, что в данный момент стоит на компе. Большой разницы не вижу, если чесно.

Для МК специально не сравнивал, просто лениво.

Собственно из-за лени и выбрал IAR (Си), дабы не изучать еще что-то, если придется менять проц.

Если-бы увидел столь-же всеобъемлющий компилятор с Паскаля, возможно работал-бы в нем.

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

Зато реализующий код существенно длиннее

Ну ни кто не мешает объявить новый тип, правда придется для каждой переменной отводить по байту.

Можно даже в программе написать "True" и "False" вместо "1" и "0"

Кстати многие МК могут работать с битами на уровне команд, и для них хороший Си компилятор сформирует оптимальный код, без использования масок.

А вообще, возвращаясь к теме, для новичка хорош тот язык, на котором есть куча примеров, а для профессионала - сам выберет, в зависимости от желания :)

Учиться все равно придется постоянно :)

Изменено пользователем Migray

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Kolyanych    0

Я использую CodeVisionAVR и симуляторы VMLAB PROTEUS - очень удобно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Migray    5

Алгоритм работы проца естественно зависит от его возможностей.

Но алгоритм работы всего устройства зависит только от задачи. И составляться он должен один раз.

Но при разбиении этого алгоритма на подзадачи естественно будет выбираться и то, на чем делать, ведь что-то можно процом сделать, что-то еще каким внешним железом.

Тут Goodefine прав, итераций может быть немало.

И в каждой мелкой подзадаче будет свой алгоритм работы. Причем именно здесь он уже будет зависеть от железа.

Возможно мы недопоняли друг друга, будем считать эти 2 этапа, железо/алгоритм взаимосвязанными.

Но выбор языка в любом случае или просходит после полной прораборки по выбору железа, или не происходит вообще.

1. - Смотрим, что есть для данного конкретного железа.

2. - Шеф сказал - пишем все на ххх - значит все :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
rtfcnf    1
2. - Шеф сказал - пишем все на ххх - значит все :(

А мы раз шефу на фразу «пишем на …» Ответили да пошел ты

Те, кто уволились так и пишут на IAR

Да и те, кто остался то же пишут на IAR

:D:D:D

Поделиться сообщением


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

Но все же в большей степени от применяемого компилятора (видели бы вы кучу бесполезного кода от применения стандартных библиотек и макросов, натыканных языками высокого уровня). Поэтому я предпочитаю писать исключительно на ассемблере, хотя год назад для меня он был "темный лес". Теперь удается "сжать" чужую "пляску" в несколько раз(!). Вот только что "причесал" одну прошивку (после дизассемблирования). Код уменьшился с 13,8кБ до 5,5кБ при полном функциональном соответствии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
p486    6

когдато писал на паскале. теперь 90% всего кода пишу на Си.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Программирование не люблю последнее время:)

Не смотря на это неплохо владею асмом, пишу под авр, пользуюсь одним из самых старых - АВР макроасм в.1.3.

Самый компактный код по сравнению с последующими версиями. Немного владею Си (Кодевижн) - тоже вполне нормальная вещь, если не хочется много думать и считать, скорость разработки по сравнению с асм намного выше, компактность тоже норм.

Ну если любитель станет перед вопросом ужимать код или доплатить 0,5$ за большее кол-во флеша, то выбирается, как правило, второе. А для владеющих асмом остаются широчайшие возможности полного использования ресурсов, а флеша в 64кб хватит на несколько недель извращенной фантазии...

После целого дня освоения(мучений) с алгоритм билдером, так и не смог слепить прогу гирлянды, чтоб гонять огоньки туда-суда в разных вариациях, после чего сия прога была успешно деинсталирована, а аналогичная весчь для теста была за полчаса написана на асме.

Каждому свое и спорить что лучше, двольно бессмысленно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
gvl    1

Это мнение касается только АВР - и не только...

Вопрос ("Кто на чем чаще пишет для Avr и не только?"), конечно, важный!

Но не самый главный при разработке устройств - к нему мы ещё вернёмся.

Конструктору(радиолюбителю, разработчику...) Програмно-Аппаратных Комплексов(ПАК) важны некоторые "тонкости проектирования" с использованием МикроКонтроллеров(МК). Итак попробуем разобраться...

В начале, рассматриваются общие вопросы, такие как выбор МК(как базового типа), возможности наращивания(расширения) функциональности разрабатываемых устройств на его основе и т.д.- легче работать с одним МК, который в результате узнаётся до корочки, чем прыгать по разным типам(ещё 5 лет назад мной сделан выбор - mega128(тогда это было круто, но этот выбор оказался правильным...)).

Далее разбивается задача на аппаратную и программную части. Чем больше будет решаться задача аппаратной частью - тем меньше остаётся для программной части (в этой части xmega здорово помогает).

После этого изучается вопрос минимального времени ответа устройства на внешние события.

Если это порядка 100..200мс - то лучше программировать на ЯзыкахВысокогоУроня(ЯВУ)- не забивать себе голову всякой ерундой(всё и так получится и, что будет сказано ниже, Вам это не нужно), а если критичное время АПК составляет, например, 1мс (при опросе других mega128, связью контроля на PC, командами на нижний уровень по иерархии RS485 ... ), то,конечно, Вы мой "слушатель и вниматель" (идея упёртости - зачем мне знать другое, если это можно сделать и на том, что я знаю и мне это лучше известно...? - mega128 - "Это же просто..."), потому,что если Вы не ушли на другой МК(xmega,ARM..) - Вы поймёте, почему никто в мире Widows не использует ассемблер..., а только Си(особенно) и прочие!

(

Тут необходимо немного отвлечься от предмета разговора и однозначно ответить на "больной вопрос о Паскале".

Паскаль - потокобезопасный! Это означает только одно - если Вы хотите сделать надёжное приложение(программу) в крачайшие сроки (без всяких прибабахов), то он Вам помощник уже на этапе составления(компиляции) программы - убережёт от многих ошибок уже на стадии написания исходников - типизация данных, проверка типов и т.д. И не путайте Delphi с ObjectPascal!

Дальнейшее продолжение Object Pascal - OBERON(Никлаус Вирт и его последователи) - он доступен в понимании и его описание есть на многих русско-язычных сайтах(engl даже для ARM7(2005)). OBERON набирает обороты, а Delphi - это отряд без командира...

)

Продолжение следует...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
gvl    1

А зачем эта тема? Что-бы незнающим головы морочить?

Милостивый, погодите, продолжение последует!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    95
А зачем эта тема? Что-бы незнающим головы морочить?

...

Ааа... Ну просветите незнающих... Походу, истинный путь только Вам известен...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то мне не нравится второй абзац данной статьи. Мне видится какой-то подтекст. К чему она призывает "незнающих"? Не заморачиваться с познаниями? Не развиваться как специалистам, изучая разнообразные типы МК? Это очень похоже на речь конструктора, но не радиолюбителя. Хотя если второй, почти всегда бывает первым, то первый далеко не всегда бывает вторым.

Извини, gvl, но я тебя, честно, не понял. Значит, "зачем забивать себе голову всякой ерундой", достаточно познать элемент 2И-НЕ и ты уже "цифровик"? Ведь на нем (2И-НЕ) можно собрать большой набор схем различного направления. Вот только габариты могут быть огромные (как ресурсы, сжираемые Windows). Все-таки, для правильного выбора МК, радиолюбитель должен знать все типы, из которых будет выбирать тот или иной для своей, конкретной схемы. Опять же не все радиолюбители в домашних условиях (не путать с производственными возможностями конструктора) могут позволить приобресть себе, перечисленные тобой, типы МК. Просто их нет в продаже, в их местности. Вот поэтому на форуме есть всякие МК (кто что нашел). И чем больше человек их познает, как я думаю, тем лучше. Больше у "корифеев" будет конкурентов. :) И это хорошо.

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
gvl    1

Goodefine “А оно надо?...”

Конечно надо! Сам был в этой ситуации и не мог получить ответ на вопрос “На чем программировать?”. На этом форуме – тоже не увидал. Встречный вопрос – он же ответ: “Почему количество просмотров этой ветки так велико?”.

Геннадий

Программисты, которые желают найти работу, в своих резюме указывают такие длинные перечни языков программирования и систем, которыми они свободно владеют - что диву даёшься - как в их головах столько помещается! Всё в кучу - функциональные, логические, процедурные... И, Вы думаете, им работодатели поверят? Скорее всего, они возьмут того, кто отлично знает конкретную тему и имеются определенные достижения (разработки).

"Зачем забивать себе голову всякой ерундой" - наверно фраза не доскональная, но в общем верная. Например, зачем разбираться в организации работы SPI в каждой конкретной ситуации или как сделать обработку квадратурного датчика с частотой 150 кГц...

МК – это инструмент для достижения поставленной задачи – чем лучше Вы владеете инструментом – тем больший круг задач Вы сможете решить (мастерство не утаишь!). Если Вы знаете досконально несколько МК – честь Вам и хвала.

Так вот, если Вы радиолюбитель-конструктор, Вам надо досконально знать тот(те) МК, который(е) Вы выбрали как базовый(е). Надо знать возможности МК и пути решения задач - помочь будет некому.

  • Не одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    95
...Конечно надо! Сам был в этой ситуации и не мог получить ответ на вопрос “На чем программировать?”. На этом форуме – тоже не увидал...

И не увидите. Тем более не дадите. По той простой причине, что однозначного, верного ответа на нет. И не только на этот вопрос...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: CUBE
      Не могу запустить асинхронный режим. 
      Ниже будет представлен код которым пытаюсь отладить. Там в 1 коде идёт работа от внутреннего источника таков (стоит 1МГц).  После 5 миганий таймер должен перейти в асинхронный режим и мигать с частотой в 1 Гц. У меня происходит 5 миганий потом ничего. Фьюзы менять пробовал, ничего не дало, сейчас дефолт. Корпус кварца к земле тянуть пробовал - безрезультатно. 
      Возможно что-то в подключении накосячил, если не видно на фото ниже, спрашиваете, нужно будет - нарисую схему. 
      Компилятор Atmel Studio 7
      Шью через Sind Prog 2.1.1 + USBasp 2.0
      Вот код: 
      .macro outi 
       ldi r16, @1 
       out @0, r16 
      .endm 
      .org $000 
      rjmp reset 
      .org $001 
      reti 
      .org $002 
      reti 
      .org $003 
      reti 
      .org $004 
      rjmp timer2_ovf 
      .org $005 
      reti 
      .org $006 
      reti 
      .org $007 
      reti 
      .org $008 
      reti 
      .org $009 
      reti 
      .org $00A 
      reti 
      .org $00B 
      reti 
      .org $00C 
      reti 
      .org $00D 
      reti 
      .org $00E 
      reti 
      .org $00F 
      reti 
      .org $011 
      reti 
      .org $012 
      reti 
      .ORG INT_VECTORS_SIZE 
       
      reset: 
      .equ portout=portd 
      .equ ddrout=ddrd 
      .def led=r17 
      .def mask=r18 
      .def counter=r19 
       outi spl,low(ramend) 
       outi sph,high(ramend) 
       
       outi ddrout, 0xff 
       
       outi tccr2, 0b00000111 
       outi timsk, 1«toie2 
       
        
       
        
       ldi led,1«5 
       ldi mask,1«5 
       sei 
      cycle: 
      cpi counter, 10 
      breq offtim 
       rjmp cycle 
       
      timer2_ovf: 
      inc counter 
       out portout, led 
       eor led, mask 
      reti 
        
      offtim: 
      outi timsk, 0«toie2 
      rjmp asinxron 
       
      asinxron: 
       outi assr, 0b00001000 
      back: 
       in r16, assr 
       cpi r16, 0b00001000 
       brne back 
       
        outi tccr2, 0b00000101 
        outi tcnt2, 0 
        outi ocr2, 0 
        outi timsk, 1«toie2 
       
       
      m1: 
      rjmp m1


      Верх меги на фото слева. 
    • Автор: TheCoolKuid
      Здравствуйте.
      Часто прошивал МК, в один из моментов по программе должна была выставляться единица на 5Б пин. После этого убрал эту функцию, но теперь при включении к питанию МК на любой прошивки пин уходит в ноль и МК не отвечает ни на UART, ни на I2C. Пин не уходит в ноль только на чистом кристалле. Даже если в новой прошивке и слома нет про включение этого пина, он в единице. Может ли это означать, что программная память посыпалась?
      Спасибо.
    • Автор: Alex_Chpook
      Здравствуйте. Делаю бегущую строку на AVR и драйверах max7219 по этой статье. Исходный код есть в конце статьи. 
      Хотел бы доработать устройство чтобы можно было передавать сообщение через Bluetooth модуль HC-05 при помощи Bluetooth terminal. Сам знаю как это можно сделать, т.к. все примеры находил только под Arduino. 
      Прошу помочь кто знает как это  можно реализовать 
    • Автор: Alex_Chpook
      Всем привет. Хочу сделать светодиодную матрица с драйвером max7219 на Atmega324P. 
      При попытке смоделировать в Proteus вылазят ошибки:
      Собирал вроде всё правильно, текст в EEPROM загружен, но на матрицах выводится непонятно что и на всех одно и тоже. Может я что-то напутал, когда собирал((
      Подскажите пожалуйста кто знает))
      Проект со схемой Proteus и прошивку прикрепляю.
      И просто схема: 
       

      Строка c MAX7219.rar
  • Сообщения

    • А как же без них собирать то? У меня много чего есть. И виллы, и грабли, и коса в сарае стоит...  Кроме времени на всё. И места. Конструктивно невозможно. Посмотрим. Экранчик на мировой фабрике прикупим, если что. При работе никаких проблем не услышал, хоть и вход там справа, где я платку буфера положил.
    • Всем привет, дабы не плодить темы, напишу тут: Для изготовления прибора нужно реле IM43TS оно же  5-1462037-8 оно же аналог HFD4/5L но у нас в стране ничего из этого прикупить не могу, так как нет,  что смешно, даже на Алике нету. Было нашёл в Чип и Дипе, но сказали привезут только от 100 штук( Может есть ещё какой то аналог этого добра у тех же китайцев или кто то в вышеуказанном приборе применил что то другое?
    • Вы так шутить пытаетесь? Эффект Петросяна -Степаненко демонстрируете? С этим наверно лучше к Патриарху нашему - креститься это по его ведомству.   Не хочу никого подкалывать, хотя очень хочется. Ну да ладно...  Вот представьте вы купили себе очень дорогую машинку для производства денег. Но включать её вы можете только когда не спите. Следовательно когда спите, вы теряете деньги. И если бы вы могли ее включать круглосуточно, то тогда можно было бы купить машинку подешевле и ваши деньги обходились бы вам дешевле. 
    • Эти ***ты легко подкармливаются денежкой, но там есть тупова**я начальница ЖЕУ, вот что делать с ней пока не знаю. Но тем не менее, я заказал материал, думаю заодно крышу на балконе оцинковкой перекрыть, и ливневку на кухне и в комнате починить. Я заказал сам отлив, две штуки по 3 метра, заказал 2 тройника (у меня слева и справа 2 сточные трубы), и кронштейны для крепления. Но вот вопрос: мне надо 2 секции по 3 метра состыковать, в стыке надо какой-то соединитель ставить? Обжимное кольцо или что-то такое? А то они стыкуются между собой, но все таки, чтобы наверняка не протекало, может есть какой-то стыковочный элемент, не знаете? Так вообще думаю сначала позвонить тем кто крыши и ливневки по району делает, я уже с ними общался, за бутылку пива и соточку, они сделают многое))) Поэтому я поднялся сегодня вместе с ними на крышу, там стоят 2 секции еще с советских времен, но в месте стыка они ничем дополнительно не связаны. Хотелось бы все таки какое-нибудь кольцо там поставить, потому, что герметика хватает ненадолго, а со временем оно течет именно в стыках. Соседи рядом меняли все за свой счет, они ставили 6м секцию из пластика, поднимали на веревках с крыши, но мне бы не хотелось ставить пластик и веревкой поднимать - это великий геморой из-за подоконников, и вообще это тупо долго. А оцинкованные стальные секции идут по 3 метра. Вот такой остался вопрос.
    • Один убрал, попробовал, все нормально,значит выше напряжением нельзя