Jump to content

На чем писать  

560 members have voted

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

    • Assembler
      156
    • C
      282
    • Что-то еще
      61


Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites
допустим, задача:

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

немного oфф

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
                     

Литиевые батарейки Fanso в беспроводных датчиках пожарно-охранной сигнализации

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

Подробнее...

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

Share this post


Link to post
Share on other sites
Но не плачьте если что-то что должно работать быстро(особенно в реалтайме) вдруг еле ползает

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

Share this post


Link to post
Share on other sites
Но не плачьте если что-то что должно работать быстро(особенно в реалтайме) вдруг еле ползает

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


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

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

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

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

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

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

Share this post


Link to post
Share on other sites
Виндовое приложение на АСМе не напишешь ;)

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

http://www.annaanna.nm.ru

Share this post


Link to post
Share on other sites
Все не о том вы...

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

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

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

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

http://www.annaanna.nm.ru

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

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

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
А почему нельзя под винды на асме писать столько вирусов на нём родном написано было!

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • By LegionKC
      Добрый день.
      Экспериментирую с платой TP4056 и MK ATmega8, конкретнее - пытаюсь собрать простенькое зарядное устройство с выводом параметров при зарядке/разрядке на АЦП МК. Для измерения тока нашел ACS712. Думаю, что получится выводить ток при зарядке (т.е. когда идет питание на TP4056 и нагрузка отключена) и при разрядке (питание выключено, нагрузка подключена). Нагрузка - резистор. Возникла проблема с измерением напряжения на АКБ. Вернее, проблема с отсутствием идей как это сделать. Может какую-нибудь схему делителя напряжения нужно сделать? Прошу помочь советом. Схему из пэинта прилагаю.
      Спасибо.
       

    • By Cheshire Cat
      Здравствуйте, только начинаю изучать программирование мк. Я уже задавал этот вопрос в моих прошлых схемах мне отвечали что-то типа "любой стабилизрованый источник постоянного напряжения", или кидали схему такого источника. Можно назвать мне конкретное устройство? В общем то что я смогу забить в гугл и приписать купить. 

      Я уже больше двух месяцев жду пока мне придут с aliexpress детали для маленького лабараторного блока, но этот вариант может разбиться о кривизну моих рук.  Хочу просто купить такой источник и наконец заняться непосредственно МК. 
    • By Cheshire Cat
      Здравствуйте, только начал изучать программирование микроконтроллеров. В учебнике есть схема, но она не учитывает питание и землю. Скажите правильно ли я её дополнил.
      И еще дополнительный вопрос. Что можно использовать как источник постоянного питания на 5В? Из не дорогого и того, что можно купить в Казани. Знаю, что лучший вариант - лабораторный БП, но они дорогие.

  • Сообщения

    • Отдам книги, отправлять ничего не буду. Забираем в Москве все или выкину. Связь через личку.
    • Все - Мерзавцы! Однозначно! Негодяи! Шакалы!  Как смеете совать свой нос в драгоценные мысли Великого и Ужасного!    Вам здесь не тут - вы обязаны повторять мантры Его  по десять раз перед сном!    Увидел он, понимашь!  Глазастые!  -Дома телевизор смотри.  Дурака здесь включают...Ты здесь не для того, чтобы смотреть,  а чтобы повторять, как сказано, и хвалить Его!  Этот божественный светоч мудрости, интеллигентности, и неисчерпаемый источник  неисчерпаемости. Соседу будешь указывать.   Комментируют тут, ...Неучи!
    • Трансформатор брал готовый, только смотал вторички и намотал свою. На ХХ трансформатор разумеется не греется и молчит. Да и под нагрузкой греется слабо.
    • а точное название прибора? что за зверь..да ещё 400 ампер..хоть бы фото внутренностей...
    • Парни, давайте в разбег. Помусолили и хорош.
    • ЗЫ На фото выше, плата усилителя смонтированна "наоборот", нужно развернуть на 180 градусовюю Вкрутил.., и только сейчас заметил что не так...
    • ну так сначала собрать преобразователь и выставить напряжение,потом всю остальную плату собирать.Хорошо,попрошу Антона плату,сам соберу и поставлю номиналы.
×
×
  • Create New...