The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Проект Arduino выпустил две новые открытые платы, opennews (ok), 29-Сен-10, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


13. "Проект Arduino выпустил две новые открытые платы"  +1 +/
Сообщение от Аноним (-), 29-Сен-10, 13:16 
Фишка в том, что они встроили в язык поддержку лампочек и пимпочек. Программировать это дело на си несколько сложновато. Это же не линкус, где часто можно увидеть: кинь единичку в /dev/led чтобы включить светодиод.
Ответить | Правка | Наверх | Cообщить модератору

25. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от Alatar (??), 29-Сен-10, 14:24 
> Программировать это дело на си несколько сложновато. Это же не линкус,
> где часто можно увидеть: кинь единичку в /dev/led чтобы включить светодиод.

А что там сложного-то? Прочитать даташит на контроллер и доки на avr-libc? Вот, кстати, была заметка на тему различия между чистым С и ардуиновскими крестами - http://community.livejournal.com/ru_radio_electr/759218.html

Ответить | Правка | Наверх | Cообщить модератору

31. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от redbeardemail (??), 29-Сен-10, 15:24 
> Фишка в том, что они встроили в язык поддержку лампочек и пимпочек.
> Программировать это дело на си несколько сложновато. Это же не линкус,
> где часто можно увидеть: кинь единичку в /dev/led чтобы включить светодиод.

#include <avr/io.h>

int main()
{
  
     DDRC = 255;
     PORTC = 255;

    return 0;
}


Очень сложно ? :)

Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

36. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от куеуке (?), 29-Сен-10, 17:10 
а теперь напишите замену например вот такого примерчика из ардуино, а мы поглядим

#include <EEPROM.h>

// start reading from the first byte (address 0) of the EEPROM
int address = 0;
byte value;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  // read a byte from the current address of the EEPROM
  value = EEPROM.read(address);
  
  Serial.print(address);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println();
  
  // advance to the next address of the EEPROM
  address = address + 1;
  
  // there are only 512 bytes of EEPROM, from 0 to 511, so if we're                                                                                                                            
  // on address 512, wrap around to address 0                                                                                                                                                  
  if (address == 512)                                                                                                                                                                          
    address = 0;
    
  delay(500);
}

Ответить | Правка | Наверх | Cообщить модератору

42. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от User294 (ok), 29-Сен-10, 17:47 
А в чем тут фокус? Обычный кусок кода вроде, простой как топор. Ну да, похоже что сделали удобные функции для типичных сущностей. Это ж не значит что их нельзя самому сделать или откуда-то взять их аналоги. А то по вашему спичу возникает ощущение что надо быть как минимум богом чтобы написать что-то в духе Serial.print, что не соответствует действительности. Не, никто не спорит что хорошо если за вас уже кой-чего сделали. Но все равно это же просто си+некоторые обвязки написанные посторонними. И никакой ракетной науки. А кому там какие обвязки для повышения работы нравятся - как бы уже вопрос предпочтений.
Ответить | Правка | Наверх | Cообщить модератору

45. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от Alatar (??), 29-Сен-10, 18:54 
Гм. А в чём фича-то? Ну если хотите...
#include <avr/io.h>
#include <avr/eeprom.h>
#include <util/delay.h>
#include <stdio.h>

/*Это для извращенцев - можно и не замарачиваться =)*/
static int uart_putchar(char c, FILE *stream);
static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);
static int
uart_putchar(char c, FILE *stream)
{
  loop_until_bit_is_set(UCSR0A, UDRE0);
  UDR0 = c;
  return 0;
}
/**/
// start reading from the first byte (address 0) of the EEPROM
int address = 0;
uint8_t value;

int main(void)
{
#define BAUD 9600
#include <util/setbaud.h>
    UBRR0H = UBRRH_VALUE;
    UBRR0L = UBRRL_VALUE;
#if USE_2X
    UCSR0A |= (1 << U2X0);
#else
    UCSR0A &= ~(1 << U2X0);
#endif

    stdout = &mystdout;
    while(1)
    {
        // read a byte from the current address of the EEPROM
        value = eeprom_read_byte ((uint8_t *)address);
        printf("%d\t%d\n", address, value);

        // advance to the next address of the EEPROM
        address++;

        // there are only E2END bytes of EEPROM, from 0 to E2END-1, so if we're
        // on address E2END, wrap around to address 0
        if (address == E2END)
            address = 0;

        _delay_ms(500);
    };

    return 0;
}

AVR Memory Usage
----------------
Device: atmega168
Program:    1836 bytes (11.2% Full)
(.text + .data + .bootloader)
Data:         31 bytes (3.0% Full)
(.data + .bss + .noinit)

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

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

46. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от Alatar (??), 29-Сен-10, 19:01 
А, да, забыл - указываем линкеру -lprintf_min и сбрасываем почти 400байт веса!
AVR Memory Usage
----------------
Device: atmega168
Program:    1458 bytes (8.9% Full)
(.text + .data + .bootloader)
Data:         31 bytes (3.0% Full)
(.data + .bss + .noinit)
Ответить | Правка | Наверх | Cообщить модератору

52. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от куеуке (?), 30-Сен-10, 12:17 
Вы действительно ничего не поняли ? Сравните сложность кода в том и другом случае. Для тех, кому программирование авр не является профессиональным занятием, ардуино решает все мелочные проблемы. какой программатор ? какие регистры ? какие даташиты ? какая макетка ? о чем вы? для целевой аудитории ардуино это все излишние познания. купил платку, написал програмку почти что на бейсике и все. И благополучно забыл, пока не понадобится через полгода-год.

Примерчик приведенный мною из ардуино компилится в 2740 байт. В полтора раза больше. Время разработки для непрофессионала в 10 раз меньше. И какая ему разница, сколько во флеше осталось свободного места - 14 кбайт или 10? Если код влезает в рамки по размеру и скорости выполнения - зачем морочить себе голову себе низкоуровневым программированием ради единичных проектов.

а если все еще непонятно, полабайте например вот такое вот http://bitlash.net/wiki/start
а таких библиотечек в гугле под ардуино чем угодно жуй.

Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

56. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от Alatar (ok), 30-Сен-10, 21:51 
А что именно я должен был понять? Что Ардуино пытается снизить порог вхождения в область программирования МК ниже плинтуса? Это я прекрасно понимал и раньше. Другой вопрос - настолько ли оправданно это снижение? Вы действительно считаете, что код, который я написал так уж сложен (99% этого кода - копипаст из доков и Вашего кода), а чтение доков по avr-libc сильно дольше чтения доков по Arduino? А на разнице между ними вырастают быдлокодеры, которые даже даташит атмеги не видели. Напоминает подход M$ (ну, конечно, с оговоркой на открытость решения) - они уже вырастили поколение юзеров, которе считают, что интернет и браузер - это одно и тоже, и поколение программеров, которые только о программировании в картинках и знают...

А про проект я вообще не понял, к чему это Вы? Для обычного avr-libc тоже туча проектов в инете есть. В том числе и такой же шел мне встречался.

Ответить | Правка | Наверх | Cообщить модератору

57. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от Аноним (-), 01-Окт-10, 12:54 
у кого-то баттхерт от того что учился 5-6 лет и с трудом познавал МК? а тут какие-то ламеры с легкостью программируют Arduino. Завидно чтоли?
Ответить | Правка | Наверх | Cообщить модератору

58. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от Анон (?), 01-Окт-10, 20:45 
Видимо так, слава богу товарищ не знает сколько программистов-самоучек сидит среди бывших инженеров-строителей занявшихся написанием алгоритмов и программ для расчета предельных состояний и прочих вкусностей с ручными расчетами на 15 листов А4, а то бы и вовсе себе зад в кровь изодрал :D
Ответить | Правка | Наверх | Cообщить модератору

59. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от Alatar (ok), 02-Окт-10, 12:14 
А вот и не угадали - специальность у меня вообще весьма далёкая от программирования, комьютеров и электроники - я инженер-конструктор. Но когда понадобилось освоить программирование МК, у меня ушло на это не больше недели. Именно по-этому я не вижу смысла в том, что бы юзать ардуино, вместо того, что бы сесть и разобраться, как же это работает на самом деле.
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

60. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от Аноним (-), 04-Окт-10, 14:42 
Собсна первый пост ветки был про то, что разработали они именно _новый_ язык, в то время как это обыкновенный С с соответствующей библиотекой.
Ответить | Правка | Наверх | Cообщить модератору

61. "Проект Arduino выпустил две новые открытые платы"  +/
Сообщение от User294 (ok), 04-Окт-10, 15:29 
> у кого-то баттхерт от того что учился 5-6 лет и с трудом познавал МК?

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

> а тут какие-то ламеры с легкостью программируют Arduino.

А они программируют? И, кстати, а при чем тут все-таки васик? В приведенных тут примерах - откровенный такой си, а хотя-бы и с удобными фенечками которые уже написали за программера. Тоже никакой ракетной науки в общем то.

> Завидно чтоли?

Только круглый дурак может завидовать отсутствию знаний ;)

Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру