На чем писать  

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

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

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


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

Jozef    0

допустим, задача:

Прибор. Измеряет температуру по N каналам, точность 0.1 градус, тип датчика - любой из существующих, контроль за обрывом датчика. Регулирует ее по тем же каналам, предел регулирования вводится на клавиатуре прибора. Заносит инфу в архив объемом порядка 1 Мб, попутно выводя ее на ЖК-индикатор. Архив можно считать компом или просмотреть на приборе. Приборы завязаны в сеть по RS-485 и каждый имеет в сети свой адрес от 0 до FF. плюс всякие настройки типа часов и т.п.

На ассме стабильно пишется только самая малая часть прошивки прибора, сколько замечал.

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


Ссылка на сообщение
Поделиться на других сайтах
plexor!    4
допустим, задача:

Прибор. Измеряет температуру по N каналам, точность 0.1 градус, тип датчика - любой из существующих, ...

немного oфф

а что за датчик, если не секрет, с точностью 0.1 градус?

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


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

Датчики применяются: термопары, проволочные термометры сопротивления. А точность измерения 0,1 градус обеспечивается точностью измерения напряжения/сопротивления датчика. Недавно появились несколько приборов с точностью 0.01 градуса, но в серию их вроде не пустили, разработали штучно для опытов. Похоже, точность избыточная.

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


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

Вообще пишу на С, но сейчас начал и бейсик осваивать :) А asm вообще не перевариваю...

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


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

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

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


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

Про языки спорить можно до бесконечности.... Кому как удобно. Но ЯВУ на МК это действительно вопрос задачи решаемой тем же МК.И соответственно его ресурсами. Глупо писать что то на какую нибудь тинюху на Си. Из пушки по воробьям ито эффективнее...Тут АСм самый раз. Особенно графический типа AlgorithmBuilder. Кстати тема классная в принципе. Мошь ЯВУ и тонкости АСм...А в наглядности такая штуковина все известные мне среды и отладчики обходит как Феррари Запорожец. Особенно если уже есть какие-то библиотеки...Песня! Просто большинство когда пишут что-то не задумываются о будущих приложениях.А вот если отладить да сохранить где нить то глядишь и пригодится.Я так с I2C и другими шинами поступаю постоянно.А так же дисплеи, и прочая цветомузыка...Все стандартно. Так что пишите кто на чем может!!! Но не плачьте если что-то что должно работать быстро(особенно в реалтайме) вдруг еле ползает.Скорее всего это Ваша неспособность принять многогранность Мира!

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


Ссылка на сообщение
Поделиться на других сайтах
Jozef    0
Но не плачьте если что-то что должно работать быстро(особенно в реалтайме) вдруг еле ползает

быстро, медленно... главное, точно и надежно :)

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


Ссылка на сообщение
Поделиться на других сайтах
GiG    5
Но не плачьте если что-то что должно работать быстро(особенно в реалтайме) вдруг еле ползает

быстро, медленно... главное, точно и надежно :)

Но иногда от производительности напрямую зависит надёжность!!!

Вообще пишу на С, но сейчас начал и бейсик осваивать :) А asm вообще не перевариваю...

НЕ превариваешь потомучто питаешься чем попала

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


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

ЗЫ как не крути бейсик для начинающих !!!

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


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

Ну Бейсик-то для начинающих, но вот С... Он мудрее! Бейсик проще... АСМ примитивнее тех двоих, но очень тяжел... Мне он не понравился... Но нас и учили под КР580... Жуть...

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


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

Зато асм даёт возможность управлять процессором как тебе заблагорассудиться, пользоваться его возможностями на 100%

С конечно хорошо но не для мк

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


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

GiG, согласен, С это под ОС приложения больше писать, но я никак не могу догнать как например сложить два огромных числа на АСМ, а тем более умножить... А если еще и числа не целые... ;)

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


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

Просто надо немного почитать о булевой арифметике...И операциях над двоичными числами(а так же над 8-ми и 16-тиричными).И все станет ясно!!! Разрядность не важна! :) А ЯВУ при всей их крутости иногда делают из людей обезьян...Ездить то научили на велике а вот дальше...

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


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

alts, и все-таки мне роднее языки высокого уровня :)

А есть Делфа для AVRов? Оч хочу!!!

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


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

а зачем делфи? есть же си? немногим может посложнее, в силу хитростей с синтаксисом :)

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


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

Нет ! Не Микропроцессор правит Миром !!! А ,Мы, Программисты!!! А Язык микропроцессороа( т.е ASM), это сказал - и сделал. И при том , как сказал, так и сделал, а не как , Дядя-переводчик(т.е. С- комрил), РЕШИЛ. C - конечно - круто, но ASM - сказал- СДЕЛАЛ!!!!!!!!!!!

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


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

olegzom! Вот лично мы, системные программисты (ну лично я радист + по совместительству программист), предпочитаем языки высокого уровня ;) Виндовое приложение на АСМе не напишешь ;)

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


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

Вопрос не в том что роднее, а скорее что привычнее.То чему Вас научили, или что попало к вам в руки с самого начала. Вот я начинал вообще с основ программирования( если кто помнит такое как "если-то-иначе-все"),т.е. не было привязки к какому-то конкретному языку вообще! И потом что Паскаль, что Асм -шли в принципе одинаково...Конечно для систем с "большими" камнями, памятью, и т.д. Асм будет слишком рутинен.Много телодвижений.Часто лишних.А ЯВУ очень даже колбаса...

Но вот КАК эти компиляторы интерпретируют в машинный код то что вы там нарисовали...Частенько вовсе не так как вам того хотелось бы! Так что смотреть надо в каждом конкретном случае...К примеру:Нужна управляющая система с математическими возможностями.Часть которая управляет(т.е.) выставляет сигналы управления я сделал бы на АСме, а вот формулы нарисовал на Си или чем нибудь еще...Если конечно нет условий реалтайма и проч.Поэтому считаю сравнение языков делом не совсем корректным.Все равно что двух женщин сравнивать... :)

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


Ссылка на сообщение
Поделиться на других сайтах
GiG    5
Нет ! Не Микропроцессор правит Миром !!! А ,Мы, Программисты!!! А Язык микропроцессороа( т.е ASM), это сказал - и сделал. И при том , как сказал, так и сделал, а не как , Дядя-переводчик(т.е. С- комрил), РЕШИЛ. C - конечно - круто, но ASM - сказал- СДЕЛАЛ!!!!!!!!!!!

Респект Тебе огромный

Хорошо как сказал

А почему нельзя под винды на асме писать столько вирусов на нём родном написано было!

На АСМ можно писать писать под всё!!

Ты скажи что винды Ысчё машинный код не понимают

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


Ссылка на сообщение
Поделиться на других сайтах
Tesla    46
Виндовое приложение на АСМе не напишешь ;)

Напишешь-напишешь! Как два пальца об асфальт! :) Только зачем? Даже, например, под ARM-контроллер заниматься такими ивращениями смысла нет - его архитектура, мне кажется, больше заточена для эффективной работы с откомпилированной с языка высокого уровня программой, нежели чем для лёгкого понимания человеком его ассемблерного кода. А вот с мелкими микроконтроллерами PICами, AVRами и MCS-51 ситуация иная - часто некоторые куски проги компилируются очень неоптимально. Хорошим подходом было бы написать программу на писать программу на языке высокого уровня (я, лично, из всех языков признаю только C ;) ), найти неоптимально скомпилировавшиеся или критичные к скорости исполнения куски и переписать их на ассемблере, благо язык C позволяет делать ассемлерные вставки.

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

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


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

Для начала надо понять что такое стек, вернее нафига он нужен... Все эти регистры... Тяжко с ними... Помещать значения в регистры, проще объявить глобальную переменную и юзать ее!

Пошел АСМ для АВРов изучать... Может хоть что-то пойму...

  • Одобряю 1

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


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

Все не о том вы...

Любой язык есть ограничение и заморочки.

Хочу полета фантазии. По этому обожаю не заморачиваться с языками.

Для IBM использую Clarion, для Аверов использую Алгоритм Билдер.

Автоматом и там и там получаю текст программы, который корректирую по необходимости. Но не писать -же его самому! Хоть на Си, хоть на каком другом!

http://www.annaanna.nm.ru

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


Ссылка на сообщение
Поделиться на других сайтах
GiG    5
Все не о том вы...

Любой язык есть ограничение и заморочки.

Хочу полета фантазии. По этому обожаю не заморачиваться с языками.

Для IBM использую Clarion, для Аверов использую Алгоритм Билдер.

Автоматом и там и там получаю текст программы, который корректирую по необходимости. Но не писать -же его самому! Хоть на Си, хоть на каком другом!

http://www.annaanna.nm.ru

НУ вот уж точно не ограничения!! Ассемблер как раз и раздвигает "граници дозволенного" .

А алгоритм билдер )).....

Ты б ещё на руском языке писал к примеру

Сбросить микроконтроллер

Все порты на вывод

Помигать лампочкой на первом выводе порта B

Помигать лампочкой на втором выводе порта B

))))))))))))))))))))))))))))))))))

Крута не правда ли )

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


Ссылка на сообщение
Поделиться на других сайтах
Zer    553
А почему нельзя под винды на асме писать столько вирусов на нём родном написано было!

Загляни на wasm.ru . Там тебе под винды такого будет. :o

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


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

GiG, насчет виндов. Попробуй создать полноценное приложение под Windows (с нормальной графикой и цветностью) на АСМ... На нем можно создать неплохой мыслительный аппарат, но не более того :)

  • Не одобряю 1

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: parovoZZ
      Поставил LUFA, следом абсолютно не нужный мне ASF. Но в упор не понимаю - как создать проект на базе этой библиотеки из студии? Приходится вручную копировать папку с заголовочниками LUFA, прописывать пути в makefile, лишние телодвижения по добавлению папки в свойства проекта. Если я это делаю всё вручную, то тогда для чего это расширение? Примеры я могу и так покрутить. ЗЫ - не слишком высокий скилл в юзании Atmel Studio/
    • Автор: Trisector
      Привет всем.
      Помогите с кодом, нужно озвучить нажатие кнопки, подключенной к порту PB0, то есть просто издать короткий "бип" одной частоты (примерно 1000 Гц) и длительностью примерно 0.2 секунды.
      Везде, где искал, сразу создают кучу нот, разные тона, используют прерывания, мне же надо только один короткий бип.
      Выполняться оно должно в теле цикла:
      while (1) 
          {
              while(PINB&0b00000001); // ждем нажатия на кнопку на порте PB0
      <вот здесь должен быть бип>
       
      п.с. забыл добавить - выполняться код будет на Attiny13a
    • Автор: Zver2011
      Всем привет! 
      Дано: Контроллер подсветки рабочей зоны кухни, реализованный на Tiny 13A.  Светодиодная лента длиной 2,3 метра, led 5050, 120 светодиодов/метр. Принципиальная схема устройства ниже:

      Код прошивки:
      #include <tiny13.h> #include <delay.h> int triggered = 0; int ontimer = 0; void main(void) { // Input/Output Ports initialization // Port B initialization // Function: Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=Out DDRB=(0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (1<<DDB0); // State: Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=0 PORTB=(0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 37,500 kHz // Mode: Fast PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Disconnected // Timer Period: 6,8267 ms // Output Pulse(s): // OC0A Period: 6,8267 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (0<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; while (1) { if (PINB.1==1) { triggered = 1; ontimer = 60; }; if (ontimer > 0) { ontimer--; } else { triggered = 0; }; if (triggered) { if (OCR0A<255) { OCR0A++; }; } else { if (OCR0A>0) { OCR0A--; }; }; delay_ms(10); } } Возникшая проблема:
      Греется полевой транзистор при работе. 
      Изначально поискав информацию на данную проблему, начал прикидывать. 
      Смотрим график зависимости пропускаемого тока стока (ID )от приложенного напряжения  затвор-сток (VGS),  при температуре окруж. среды 25 градусов: ID = 14 А (2,3 метра светодиодной ленты не могут столько кушать, по крайней мере я такую не видел).

      Было предположение что частота переключения ШИМ высокая - отсюда транзистор в не определенном состоянии = нагрев. Рассчитал макс. частоту так:
      Rg = 100 Ом, Vgs = 5V
      Заряд затвора:
      Qiss = Ciss * Vgs = 1800pF * 5v = 9nC
      Скрость нарастания:
      S = Rgate * Qiss = 100Ohm * 9nC = 0.009mV*sec
      Время на открытие или закрытие транзистора:
      t=S / Vgs = 0.002mV*sec * 3.2v = 4.5uSec
      Период  - это открытие + закрытие:
      T = t + t = 4.5uSec + 4.5uSec = 9uSec
      Максимальная частота переключения:
      F < 1 / T = 1 / 9uSec = 111KHz
      Ток через затвор (G) и цифровой выход Tiny 13A:
      I = Qiss / t = 2mA
      Максимальный выходной ток GPIO у Tiny 13A 40.0mA
      2mA < 40.0mA
      Выставил частоту ШИМ на 37,5 кHz. Вуаля - при подключении 1м светодиодной ленты (тестировал на обрезке), нагрева нет. Но как только подключил все 2,3 метра - транзистор стал снова спустя время греться, аж дотронуться не возможно.  Захотел померить ток, который потребляет 1 метр ленты, проверить продавца. Потребление 1 метра ленты оказалось вместо заявленных 600 мА, все 1,85 А, причем заметил странную вещь - ток начал возрастать спустя время на сотые доли  и дошел до 1,9 А. Дальше ждать не стал. Режим амперметра в мультиметре сломался?
      Далее подумал что слишком большая мощность рассеивается на транзисторе. Если учесть то, что при открытом транзисторе, его переход можно представить в виде линейного резистора с маленькой величиной сопротивления,  можно рассчитать рассеиваемую мощность на транзисторе:
      Смотрим сопротивление транзистора в открытом состоянии при VGS = 5В : RDS(on) = 0.18 Ом
      P1 = 1,9*1,9*0,18 = 0,65 Вт. (1 метр св.ленты).
      Раз мы взяли потребление 1 метра ленты  1, 9 А, тогда 2,3 метра потребляют  = 4,4 А. (Теперь не уверен в своем мультиметре).
      P2=4.4*4.4*0.18 = 3.5 Ватт - довольно таки многовато я думаю.
      В общем: Правильно ли я делаю расчеты? Что упустил?  Как снизить нагрев транзистора, без применения вентиляторов и здоровенных радиаторов? Есть вариант замены светодиодной ленты на что нибудь поменьше жрущее (60 светодиодов/ метр например), но в будущем еще много раз придется сталкиваться с полевиками, хотелось бы разобраться .
    • Автор: Денис Оробей
       Помогите написать простую задачку (для вас - простую, а я не шарю), на плате контроллера-конструнтора KIT-8515 нужно  сделать вот это: "Пусть движковыми переключателями задаются два четырехзначных операнда.  Напишите и протестируйте программу, при работе которой после нажатия кнопки 1 операнды складывались, а при нажатии кнопки 2 операнды вычитались, а результат операции выводился на светодиоды"
      Прикреплённый файл - начало задачки.
      Заранее благодарствую:)
      123.rar
    • Автор: Николай Зубий
      Как сделать  устройство, выводящие на индикатор время, прошедшее с момента последней перезагрузки контроллера?
  • Сообщения

    • ОБНОВЛЕНИЕ СПИСКА

      Philips 
      PO400 40MHz 7000р (made in France)

      GW Instek (made in Taiwan)
      GOS-6050 50MHz 8000р (без ручки)
      GOS-652G 50MHz 6000р (без декоративной накладки на экран ЭЛТ, без ручки)

      EZ digital (made in Korea)
      OS-5020 20MHz 6000р
      OS-5040A 40MHz 7000р Matrix (made in china)
      MOS-640CH 40MHz 6000р

      ОСУ-10А 10MHz 4000р Россия

      Импульсные блоки питания с цифровой регулировкой напряжения и тока
      Instek PSH-1036 0-10в 0-36А! 10000р (Хороший блок для ремонта видеокарт)

      Цена без торга
      Осциллографы без щупов!
      Проверить осциллографы можно с помощью ВЧ генератора, предварительно могу выслать видео работы устройства на месенджер или эл почту.
      Доставка по мск 300р 
      Пересыл возможен по полной предоплате
      Доступна авитодоставка 89269260682
    • -Мойша, дай мне денег.... -Ты-же, знаешь у меня нет денег. -Нет, я знаю у тебя есть деньги. Скажи мне, где у тебя деньги лежат - я пойду и возьму. -У меня все деньги в банке. -В какой? Трехлитровой?
    • да спасибо, тоже это думаю попробовать , только почему она возбуждается - из-за DA1.1 ?
    • Понятно ,  я отпишу когда проверю конденсаторы , и перепаяю местами мц . Промою плату и тд.   А вот что скажите на счет , что у терминатора 3 сначала тишина , а при выкручивании чуйки появляется смешанный тон. А вы говорили что у Трио  сначала должен высокий тон , а потом смешанный ? Как понять , ведь трио тотже 3 , только еще добавлен канал Чермета
    • А если измерять стрелочным амперметром (магнитоэлектрической или электромагнитной системы)? С уважением В.
    • Вариант: последовательно с R11 и R12 включить по маломощному диоду - анодом в сторону ОУ. С уважением В.
    • Как я понимаю - это RX, один подключить на С5 второй на массу.   Это ТХ, с теми проводами что он связан. 5 провод идёт на массу, два других идут на С6 и С7. И что то сопротивление слишком уж большое.