На чем писать  

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

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

    • Assembler
      149
    • C
      277
    • Что-то еще
      56


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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: Alexey104
      Всем привет!
      Возникла следующая проблема:
       
      Есть две ардуины 'Mega2560'. По несчастливому стечению обстоятельств данные платы попали в руки одному чуваку, который, вернув их, заявил, что они перестали работать после того, как он "чисто ради интереса" поковырял на обеих некоторые фьюзы. Есть у меня такой китайский usbasp v2 программатор:
      Подключив данный девайс к ICSP-пинам первой платы, удалось без проблем восстановить на ней загрузчик через стандартную Arduino-IDE, после чего работоспособность платы полностью восстановилась. Но вот при попытке сделать то же самое со второй платой, получаю это:
      Такое же сообщение получаю при попытке зашить загрузчик в неподключенную к программатору ардуину, то есть программатор вообще не видит МК. Плата прекрасно работала до того, как вышеупомянутый товарищ покрутил настройки фьюзов.
       
      Что я пытался предпринять:
      Замыкал пины JP3 программатора, отвечающие за понижение скорости, подключал к ардуине 5V от внешнего источника при прошивке загрузчика, - не помогло.
       
      Поиском пользоваться умею, аналогичную тему тут находил, но там проблема была в том, что парень неверно подключал программатор к контроллеру. В моём же случае всё подключено верно, повторюсь, что загрузчик первой платы этим же программатором был восстановлен успешно.
      Буду рад любым советам касательно того, как восстановить работоспособность платы.
       
       
       
    • Автор: Ru_s
      Здравствуйте. Подскажите пожалуйста, возможно ли на attiny13 реализовать такую штуку. Мне в процессе работы программы нужно поменять режим работы таймера/счетчика с fast PWM на обычный счёт, отсчитать длительный промежуток времени и опять вернутся в режим ШИМ. Т.е. я подаю на ногу сигнал ШИМ и когда он в максимальном значении, я его отключаю, и тупо подаю на ногу высокий лог. уровень. В это время Т/С по идее свободен, и мне надо посчитать время работы выхода на максимальном лог. уровне, при достижении какого-то значения времени нужно перевести т/с обратно в ШИМ. Возможно ли это? И как приблизительно это реализовать
    • Автор: ShimkoMax
      Здравствуйте. Требуется вывести данные температуры и влажности на экран. С LCD дисплеем разобрался, осталось разобраться с SHT21. Постоянно выводит 0 на дисплей:
      Main.c:
      #define F_CPU 8000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdio.h> #include <stdlib.h> #include "globals.h" #include "LCD_lib.h" #include "twi.h" // I2C #include "sht21.h" int main(void) { I2C_Init(); _delay_ms(100); LCD_init(); char buffer[20]; roomAdrInit(); SHT21_reset(); while(1) { SHT21_reset(); LCD_sendString(itoa((int)get_temperature(), buffer, 10), 4, 0, 0); _delay_ms(1000); } } twi.c:
      #include <avr/io.h> #include "twi.h" void I2C_Init(void) { TWSR = 0; TWBR = 0x20; TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN); } void I2C_StartCondition(void) { TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); while(!(TWCR & (1<<TWINT))); } void I2C_StopCondition(void) { TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN); } void I2C_SendByte(uint8_t data) { TWDR = data; TWCR = (1<<TWINT) | (1<<TWEN); while(!(TWCR & (1<<TWINT))); } unsigned char I2C_ReadByteAck(void) { TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA); while(!(TWCR & (1<<TWINT))); return TWDR; } unsigned char I2C_ReadByteNak(void) { TWCR = (1<<TWINT) | (1<<TWEN); while(!(TWCR & (1<<TWINT))); return TWDR; } sht21.c:
      #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdio.h> #include "twi.h" #include "sht21.h" void SHT21_reset() { unsigned char reg[1]; reg[0]=SHT21_reset_cmd; I2C_StartCondition(); I2C_SendByte(SHT21_i2c_write); I2C_SendByte(*reg); I2C_StopCondition(); _delay_ms(100); } uint16_t checksum(unsigned char data[],uint8_t byte, uint8_t check) { uint8_t crc=0; uint8_t bytectr,bit; for (bytectr=0; bytectr<byte;bytectr++) { crc^=(data[bytectr]); for (bit=8;bit>0;bit--) { if(crc&0x80) { crc=(crc<<1)^polynomial; } else { crc=crc<<1; } } } if (crc!=check) { return 0; } else { return data; } } void write_user_register() { unsigned char reg[3]; reg[0]=user_register_write; reg[1]=0x44; I2C_StartCondition(); I2C_SendByte(SHT21_i2c_write); I2C_SendByte(*reg); I2C_StopCondition(); } uint16_t read_value(uint8_t reg) { char data[4],crc; uint16_t result; data[0]=reg; I2C_StartCondition(); I2C_SendByte(SHT21_i2c_write); I2C_SendByte(reg); I2C_StartCondition(); I2C_SendByte(SHT21_i2c_read); data[1] = I2C_ReadByteAck(); data[2] = I2C_ReadByteAck(); crc=I2C_ReadByteNak(); I2C_StopCondition(); result=(data[1]<<8) | data[2]; checksum(result,4,crc); result &= 0xFFFC; return result; } float get_humidity() { //char buffer2[4]; uint16_t hum_value = read_value(humidity_hold_mode); return -6 + 125.0 / 65536.0 * hum_value; //dtostrf(rh,5,2,buffer2); _delay_ms(100); } float get_temperature() { //char buffer1[4]; uint16_t temp_value = read_value(temperature_hold_mode); return -46.85 + 175.72 / 65536.0 * temp_value; //dtostrf(tc,5,2,buffer1); _delay_ms(100); }  
    • Автор: GeloMik
       
      Я новичок в программировании AVR контроллеров, хотя знаю +/- C++.
      Проблема заключается в том, что я не могу написать прошивку к своему маленькому проекту. Используемый мною контроллер - ATTiny45. У него на борту имеется 1 АЦП с выходом на 4 ноги. Нужно, чтобы фактически одновременно брался замер с 3, 4 и 5 порта по АЦП, и при появлении 1 на одном из них МК должен подать 5В на 1 или 2 порты. Источник АЦП AREF. 
      Сюда прикреплю схему самого робота, если кого не затруднит помочь написать прошивку, буду очень благодарен 

  • Сообщения

    •   Какая красота! Просто смотрю и любуюсь на ваши платы как на картину. Можете поделиться печаткой и gerber файлом с нами?
    • По уровню нереальности пьедестал занимает индийское кино, рядом китайское/корейское кино. Вдобавок эти фильмы, как говорил один наш режиссёр, уж слишком "переигрывают лицом". Поведение персонажей наигранно-неестественное. Походу они взяли пример с европейского кино 80-х. Вспомните роли Луи Де Фюнеса, особенно из серии про жандармов. Он постоянно гримасничал, жестикулировал и вёл себя как поциент психушки.  Фильмы про карате, кун-фу и прочие боевые искусства восточного производства это голимая нереальность с мультяшной игрой актёров. Да, это кино мультяшное. Даже знаменитый Джон Ву снимает не кино а шоу а-ля-синема. Он сильно ценит русское кино, считает его одним из лучших. Оценивает фильм по "посылу" не обращая внимание на разные мелочи. Если у фильма нет посыла (мотиватора) то это просто набор кадров видеоряда...
    • Не знаю как в тапаталке цитировать но вот вентиляторы на 5 В
      https://www.chipdip.ru/search?searchtext=%D0%9A%D1%83%D0%BB%D0%B5%D1%80+5+%D0%B2

      И у меня есть такая подставка от USB с 5ти вольтовыми кулерами, которой я с момента покупки не пользуюсь. Проц у меня до 100 иногда разогревается при черчении в Автокад. Но для него это норма я прочёл. А так 85-90. Если ничего не делать остывает до 65.
      Так что надо документацию на проц почитать может он и не перегревается.
    • LDC не прошел инициализацию, почему это другой вопрос, нет контакта, мертвый МК, кривая прошивка, не завелся кварц
    • не знаю как схему вложить - при создании сообщения, внизу, есть "скрепочка" и текст -  Переместите файлы сюда, чтобы прикрепить их, или выберите файлы...  Вот, переместите или выберите. Когда файл загружен - "тыц" мышкой по нему, он и вставится в то место сообщения, где, в тот момент, был курсор. Потом, двойной "тыц" по картинке - и можно будет изменить размер, если она слишком большая. Не пугайтесь- это для предпросмотра. В посмотре откроется в нормальном размере. анодное 540-600В, вторая сетка 250В, ток покоя по схеме 25мА. Мощьность планирую снять 50Вт. - при таком анодном, да с УЛ, снять 50 Ватт - на самом пределе. У Василича был усилитель на ГУ-50, на такую мощность. Но, он там параллелил лампы.Подвох в том, что 6Р3С более "токовая", чем ГУ-50. Поэтому может отдать бОльшую мощность при низких напряжениях. Хотя, выбранный Вами прототип не из самых удачных. ЛОМО с одной 6Р3С снимает 25 Ватт, на 100 Ватт ставит 3 в параллель. получилось первичка 2х840 и вторичка 60 витков.  - давайте прикинем. Железо ОСМ1-0,16. Стало быть, 32 х 40 = 12,8 см2. Обмотка 840 х 2 = 1680 витков. Приведённое сопротивление 6300 Ом. Для 50 Ватт это соответствует напряжению на обмотке 588 Вольт, с учётом КПД. Или 1680 / 588  = 2,86 витков / Вольт. Если принять максимальную индукцию в 0,8 Тл, то она будет достигнута на частоте 2200 / 2,86 / 0,8 / 12,8 = 75 Гц. Для 1 Тл - 60 Гц. Мораль - маловато витков. Даже, с учётом ООС. Хотя, если это усилитель для гитары - хватит.
    • Здравствуйте!
      Заказал DSS генератор на AVR. 
      После сборки и подачи 5В на экране загорелась только верхняя строка. 
      Монтаж весь проверил, пассивные элементы прозвонил. 
      О чем может говорить данное состояние? Об отсутствии прошивки?