roboforum.ru

Технический форум по робототехнике.

C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Ответить

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

avr123.nm.ru » 03 дек 2009, 11:01

Читабельность в разы. Как измерили то ?

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

executer » 03 дек 2009, 11:04

А мне трехэтажные комманды в объектно-ориентированных языках ну никак не нравятся :no:

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

blindman » 03 дек 2009, 11:07

Интересно было бы посмотреть для чего C++ применяется.

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

yozik0ff » 03 дек 2009, 11:43

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

А тут, год назад начал для своей квартиры собирать "приточку" (система автоматического подачи свежего воздуха в квартиру) пробурил дырки в стене (15см в диаметре) сделал воздуховоды, вентилятор, глушитель, калорифер - адская установка получилось!
Но вот чтобы ей управлять - нужен некий "контроллер" который стоит 15тыщь рублей.
Подумал подумал, нафиг нам такой контроллер.
Стал собирать свой.
На борту атмега 128.
Заслонки двигаем сервами мощными.
ЖКИ мониторчег.
Датчики температуры. (улица, болкон, калорифер, квартира)
датчик давления. (отслеживание загрезнения фильтра)
релюхи для включения калорифера и вентилятора
---

Нужно было сделать систему, которя в определенный момент по расписанию включала и выключала вентилятор, шевилила заслонками, в зависемости от температуры включала калорифер. Все это выводить на ЖКИ. ну и нормальный интерфес чтобы был.
Вродебы все просто, задача ясна.
писать стал на "С".
Пошло быстро и легко. Сделал расписание включения устройств. вывод на ЖКИ информации. плавно программа переросла в монстра
--
дальше, когда мне потребовалось зафигачить меню для тонкой настройки приточки... мой мозг поплыл, ибо я не привык процедурно программировать.
--
взяв в пивка, и мое сознание выдало. а не попробывать бы нам С++ залить.
Сказано сделлано. настроен компилятор использую WinAVR среда CodeBlocks
В итоге.
Программа стала читабельней, полностью отделены мухи от коклет. Тоесть железячки в одном месте. логика программы в другом. Никак они между собой не пересекаются. Связь только через интерфес.

Выглядит что то вроде этого:
Код: Выделить всёРазвернуть
int main(void)
{
    cHardware hardware;
    hardware.create();
    hardware.run();//запуск основоного процесса
    return 0;
}


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

Вот код оброботчка гланого цыкла жилизячег
Код: Выделить всёРазвернуть
void cHardware :: run (void)
{
   /* основной цикл программы
   */
   while (1)   
   {
      /* сначало передаем управление железу
      */
      servo.      process();//движение серв
      led.      process();//динамическая индикация светодиодов
      LCD.      process();//фоновая отрисовка дисплея
      keyBoard.   process();      
      /* отработка логики программы
      */
      application.process();
      }
}


Все обстрагировался до основания. Наверно всем покажется это дикостью. Но мне нравится!

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Snable » 03 дек 2009, 12:00

ИМХО, для некритичных ко времени систем с кучей памяти - самое оно :good:
Тоже крупные проекты на Си мозг взрывают... Их без "спец. инвентаря" и не разберешь :-)
А вот Си++ (до n00000 строк кода) разбирается вполне ничего :-)

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

cjA » 17 июл 2010, 06:27

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

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

=DeaD= » 17 июл 2010, 08:14

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

Напиши транслятор с Ада в машинные коды AVR ;) 8)

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

cjA » 17 июл 2010, 08:58

не возьмусь, bascom уже есть, для программирования четырех портов больше и не надо.
но есть же трансляторы написаные на джава, которые джаву в понимаемый ARMами код переводят? ARMы кстати тоже риск процессоры.

Добавлено спустя 3 минуты 19 секунд:
Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!
По стандарту языка Ада, он уже должен понимать машинный код процессора, только для AVR пока еще не реализовал это никто. ;(

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

galex1981 » 17 июл 2010, 09:01

Ну вот и будешь первым ;)

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

cjA » 17 июл 2010, 09:12

http://www.aonix.com
понимает моторолу и интел, правда размер кода ограничен в бесплатной версии
2 galex1981 - может быть, чего от скуки не сделаешь

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

blindman » 17 июл 2010, 09:43

cjA писал(а):может быть, чего от скуки не сделаешь

Ничего наверно не сделаешь. Тем более если не удосужился поискать что уже сделано

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

cjA » 17 июл 2010, 10:03

наверное, да. но не поэтому. когда-то учил человечков по экрану ходить- даже какой то скриптовый язык написал.
ну и когда-то мк-65 в машинных кодах прогил.
Я читал даташит для тини45, там всего около сотни команд, его реально прогить в машкодах в каком нибудь хексредакторе.

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

Добавлено спустя 7 минут 28 секунд:
Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!
ты не поверишь, когда то давно компьютеры собирали люди, а не роботы, и не на заводах, а в гаражах. Почитай откуда у Гейтца 40 миллиардов.

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

=DeaD= » 17 июл 2010, 10:35

cjA писал(а):Почитай откуда у Гейтца 40 миллиардов.

Откуда по вашему? :oops:

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

cjA » 17 июл 2010, 10:47

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

Re: C vs ASM -прочитай и никогда не поднимай эту тему на фор

Angel71 » 17 июл 2010, 12:08

напиши тоже интерпретатор бэйсика, мс-дос (это вообще сейчас уровень курсовой),... :D может тоже озолотишся


Rambler\'s Top100 Mail.ru counter