помогите разобраться с Arduino Mega2560,

w2e
Offline
Зарегистрирован: 20.04.2012

Всем доброго дня.

у меня есть 2 платы

 

  1. Arduino Mega2560
  2. DFRduino Mega 2560

цель в том что бы я с помощью устройства на котором стоит unix смог по UART порту передать на Mega2560 команды. вообщем как мне это реализовать?

то есть принцип кто нить расскажите как это должно работать? что за софт писать?

спасибо заранее

 

Zapek@n
Offline
Зарегистрирован: 16.02.2012
leshak
Offline
Зарегистрирован: 29.09.2011

Самым сложным может оказаться именно подключение mega к вашему unix. Ключевое слово "драйвера". Если они есть "из коробки", то проблемм не будет. А вот если нет....

Вообщем система должна увидеть mega как serial port. Для windows для этого нужно ставить драйвера, в MacOs (который в глубине души тоже unix) и Linux - вроде ничего не нужно. Устройство будет видно как /dev/ttyACM#,  /dev/ttyUSB#, /dev/cu.# и т.п.

Подключаете, замыкаете на меге, между собой пины RX,TX берете любую терминальную программу и шелет в COM порт ( /dev/ttyACM# и т.п.) - любые символы. Если они "возвращаются" назад как эхо - значит все подключенно праввильно. И связь arduino - unix установлена.

Дальше убираете перемычку RX,TX и шлете любые команды этой терминальной программой ардуине, а в скетче анализируете "что приходит на UART" и выполняете необходимые вам действия.

Если же вам нужно "программно" отправлять какие-то команды, а не вбивать их руками в терминалах. Выбираете любой язык, на котором собираетесь писать. И в его справке смотрите как работать с Serial портом (скорее всего это будет просто "запись в файл" с тем самым магическим именем /dev/...)

При разборе команд, со стороны ардуины. Будет нюанс. Она умеет читать из serial, только по одному байту за раз. Поэтому прийдется разобратся как в "байты" кодируются строки, типы long, int и т.п. В чем разница между байтом со значением 1 и символом '1'. Как одно в другое конвертить. То есть со стороны компа-то они "закодируются" сами, а вот на стороне ардуины, набор байтов превращать "в строку", что-бы понять "что это за команда" - вам прийдется уже самому.

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Парни приветствую. Прошу прощения за флуд, нужна небольшая помощ чайнику. Есть два диода, блинкают. Для прошивки полных количеств всех циклов ПЗУ не хватает. Как написать, чтоб нужные циклы были по одному разу написаны и указать какой цикл сполько раз отрабатывать?

leshak
Offline
Зарегистрирован: 29.09.2011

Может я тупой, но совершенно не понял две вещи:
1. О чем вообще этот набор слов?
2. Какое отношение он имеет к теме ветки?

P.S. "Извините за флуд" - не означает что дальше можно творить что угодно. Заведите отдельную тему (только ради бога, дайте нормальное название, а не "помогите новичку) и попытайтесь внятно объяснить что вы хотите. Можете для тренировки позвать кого-то из домашних. Дайте им прочитать и посмотрите поймут ли они хотя-бы примерно в чем состоит ваша проблема.

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Я просто заливаю через 2560.

А мне вот не понятно что тут непонятного.

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

цикл один - повторить три заза

затем

цикл два - повторить пять раз

затем 

цикл три - повторить 4 раза .... и т.д.

step962
Offline
Зарегистрирован: 23.05.2011

hugoboss317 пишет:

Я просто заливаю через 2560.

А мне вот не понятно что тут непонятного.

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

Непонятно, куда вы "заливаете".

Непонятно, каков размер вашего скетча (в строках), что он не помещается в 32 КБ.

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

Leshak'у может быть еще кое-что непонятно...

 

 

PS: Да, и если чуть чуть причесать ваши тирады, то получится еще более коротко и емко:

"Мужики, извините за флуд, как сделать так, чтобы все работало?"

 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Это пипец(((

case 0:
digitalWrite(3, HIGH);
delay(50);
digitalWrite(3, LOW);
delay(50);
digitalWrite(3, HIGH);
delay(50);
digitalWrite(3, LOW);
delay(50);
digitalWrite(3, HIGH);
delay(50);
digitalWrite(3, LOW);
delay(200);
break;

case 1:

digitalWrite(4, HIGH);
delay(50);
digitalWrite(4, LOW);
delay(50);
digitalWrite(4, HIGH);
delay(50);
digitalWrite(4, LOW);
delay(50);
digitalWrite(4, HIGH);
delay(50);
digitalWrite(4, LOW);
delay(200);

break;

програмирую тиньку 13 с пзу 1к через 2560

нужно:

case 0 - 5 раз, затем case 1 - 5 раз.

что ещё не понятно?

medossa
Offline
Зарегистрирован: 10.07.2012

вы в порт шлёте 0 и 1? может весь код покажете

hugoboss317
Offline
Зарегистрирован: 21.03.2013

void setup() {
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);

}
void loop() {
case 0:
digitalWrite(3, HIGH);
delay(50);
digitalWrite(3, LOW);
delay(50);
digitalWrite(3, HIGH);
delay(50);
digitalWrite(3, LOW);
delay(50);
digitalWrite(3, HIGH);
delay(50);
digitalWrite(3, LOW);
delay(200);
break;

Я понимаю что вы все профи и поэтому умничаете, но вы же не родились такими и тоже начинали когда та и хорошо если было у кого проконсультироваться, а вот мне  не у кого и поэтому флудить приходится

medossa
Offline
Зарегистрирован: 10.07.2012

Не в обиду, но если это весь код, то вам сюда http://arduino.ru/Reference

tsostik
Offline
Зарегистрирован: 28.02.2013

Если вы программируете ATTiny13, забудьте ArduinoIDE, как страшный сон.

AvrGCC в зубы и вперед. Вот примерный псевдокод для мигания на PB0 и PB1 (пятая и шестая нога тиньки)

while(1) 
{
    for(int i = 0; i < 3; i++)
    {
        PORTB |= 1 << 0;
        _delay_ms(50);
        PORTB &= ~(1 << 0);
        _delay_ms(50);
    }
    _delay_ms(200);

    for(int i = 0; i < 3; i++)
    {
        PORTB |= 1 << 1;
        _delay_ms(50);
        PORTB &= ~(1 << 1);
        _delay_ms(50);
    }
    _delay_ms(200);
}

Не забыв, естественно предварительно сконфигурить порт.

hugoboss317
Offline
Зарегистрирован: 21.03.2013

парни, я в шоке, да неужели тяжело просто написать как выглятит команда - "case  0 - повторить 5 раз"

hugoboss317
Offline
Зарегистрирован: 21.03.2013

ну вот, уже ближе, спасибо

hugoboss317
Offline
Зарегистрирован: 21.03.2013

хоть и не помогло

Вы это серьёзно.....?

никто не может сказать?

У меня времени больше уйдёт на изучения AvrGCC оно же WinAVR

tsostik
Offline
Зарегистрирован: 28.02.2013

Пытаться впихнуть в 1КБ, достуный на ATtiny13, что-то сгенеренное из ArduinoIDE - занятие бесполезное и бесперспективное.

Плата за универсальность и простоту языка - огромное количество лишего кода.

Вбейте следующий скетч в IDE, откомпилируйте и посмотрите его размер:

void setup()
{
};
void loop()
{
    for(int i = 0; i < 3; i++)
    {
        digitalWrite(2, HIGH);
        delay(50);
        digitalWrite(2, LOW);
        delay(50);
    }
    delay(200);

    for(int i = 0; i < 3; i++)
    {
        digitalWrite(3, HIGH);
        delay(50);
        digitalWrite(3, LOW);
        delay(50);
    }
    delay(200);

}

 

medossa
Offline
Зарегистрирован: 10.07.2012

hugoboss317 пишет:

Вы это серьёзно.....?

мы вас просто не понимаем, что вам надо и что у вас есть

medossa
Offline
Зарегистрирован: 10.07.2012

tsostik пишет:

Пытаться впихнуть в 1КБ...

а если еще pinMode добавить, то 1,1 кб ужо

hugoboss317
Offline
Зарегистрирован: 21.03.2013

да нафига понимать что у меня есть.

есть Anduino на atmega 2560 и через него програмирую Attiny13

одна и та же команда повторяется несколько раз и чтоб не писать одно и тоже я хочу знать как написать что эта команда "Х" а эта команда "У" и команду "Х" повторить 5 раз, а команду "У" повторить 6 раз к примеру. пишу на Arduino 1.0.4

ну что может быть проще или вы с оперантами и переменнымим плавающими русский язык не понимаете уже

leshak
Offline
Зарегистрирован: 29.09.2011

for

hugoboss317
Offline
Зарегистрирован: 21.03.2013

кажется потихонечку начинаем просматривать свет в конце тунеля

Продолжение будет?

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Все в сети и все молчат, парни, вы рууский язык вспоминаете, а вкурсе что в километре 1000 метров, а не 1024

leshak
Offline
Зарегистрирован: 29.09.2011

 

hugoboss317 пишет:

бляяяяяяяяяя

Знаете, может вам выдохнуть? Задумайтесь, если четыре разных человека (а промолчали думаю еще больше), которые не первый день на форуми и новичков уже таки видели, не могут понять что вы хотите - то что-то все-таки стоит сделать вам. Взять паузу, попить чаю, погулять на улице и привести собственные мысли в порядок? А там, глядиш и сформулировать получится более внятно. Настолько что сами ответ найдете. А то винигрет выходит. Спрашиваем про "как повторить код", но при этом в теме про мегу (ну заливаете вы мегой и что? может тогда пойти поспрашать еще на форумах про мониторы.. код-то вы на мониторе смотрите, или обратится в службу поддержки изготовителя мышки..)

Или воспользоватся советами и попытатся почитать что вам советовали. По крайней со стороны выглядит что ответы вам уже дали. И не раз. Только у вас какое-то собственное представление о "правильном ответе" и настоящие ответы - вы просто игнорируете.

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

А еще лучше начните наверное с чтения прикрепленных веток. Например про то как нужно вставлять код на форуме.

leshak
Offline
Зарегистрирован: 29.09.2011

hugoboss317 пишет:

кажется потихонечку начинаем просматривать свет в конце тунеля

Продолжение будет?

Понятие не имею. Это же вы цирковое представление устраиваете.  

Если бы вы послушались совета и пошли читать ссылку http://arduino.ru/Reference которую вам дали фиг знает сколько постов назад - сами бы нашли линк на for (не говоря уже про то что и код с for - вам уже давали, нужно только было заподозрить что он имеет какое-то отношение к вашему вопросу) . А читать вам - все равно прийдется. Как ни кричите. Дублировать сюда всю документацию - никто не будет. А не зная базовых блоков - програмировать вы не сможете.  Вне зависимости от того сколько вопросов на форуме зададите.

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

hugoboss317
Offline
Зарегистрирован: 21.03.2013

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

Может кто ещё помнит такое:

тутуту - это "Х"

ляляля - это "У"

Выполнить: тутуту пять раз

                     ляляля шесть раз

X*5 (икс умножить на пять)

Y*6(игрик умножить на шесть)

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Да я сразу перешёл по той ссылке, и мне компилятор на эту for говорит, чё за хрень, можно же было просто написать как мне обозначить команду 0 и команду 1 и как заставить их повторяться несколько раз

tsostik
Offline
Зарегистрирован: 28.02.2013

hugoboss317 пишет:

Да я сразу перешёл по той ссылке, и мне компилятор на эту for говорит, чё за хрень, можно же было просто написать как мне обозначить команду 0 и команду 1 и как заставить их повторяться несколько раз

Попробюую еще один раз, видимо последний.

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

1)Точный полный текст того, что пытаетесь скормить компилятору.

2)Точный и полный текст того, что компилятор пишет в ответ.

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

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Короче вот задание только для мастера дела, уместить это в 1К:

удалено

hugoboss317
Offline
Зарегистрирован: 21.03.2013

если ещё кто скажет что непонятно, разобью ноут к чёртовой матери

P.S. пины 10 и 12 будут заменены на 3 и 4

leshak
Offline
Зарегистрирован: 29.09.2011

hugoboss317 пишет:

Да я сразу перешёл по той ссылке, и мне компилятор на эту for говорит, чё за хрень, можно же было просто написать как мне обозначить команду 0 и команду 1 и как заставить их повторяться несколько раз

Ну так цилом for и делается "заставить повторятся". Что вы еще хотите? Подробней чем в доке - никто не опишет. Вот эта ссылка - это уже и есть "написать мне как...". Вот написали. Или вы хотите что-бы там было сверху добавленно "специально для hugoboss317 вот так повторяются команды"?  Ну ведь, раз читали, то первые же слова "Конструкция for используется для повторения блока операторов...". Не поняли, ну так задайте какие-то вопросы конкретные, а не

"почему все молчат", "компилятор хрень говорит".

Во первых компилятор не хрень говорит, а как правило сообщает "что с кодом не так".

Во вторых никто, кроме вас, не знает что за хрень вы компилятору пытались скормить. "А караул, ничего не выходит" - ну так вы долго помощи ждать будете. Это намек что когда что-то посоветовали, то обычные люди, не плавающие запятые (интерестный подход, вы так пытаете подогреть теплые чувства к вам?)  действуют по такому алгоритиму:

1. Читают
2. Пробуют применить прочитанное, если не получилось
3. Показывают код (как они пытались) и "что говорит компилятор".

А не запевают рефрен "Я Дартаньян, а все..."

P.S. И я продолжаю недоумевать причем тут Mega 2560 и почему все это не отдельная ветка.
 

Alexander
Offline
Зарегистрирован: 25.04.2010
hugoboss317
Offline
Зарегистрирован: 21.03.2013
void setup() {    
  pinMode(10, OUTPUT);  
  pinMode(12, OUTPUT); 

}
void loop() {
 //1.1.1 
   digitalWrite(10, HIGH);  
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(200);
  //1.1.2
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(200);
  
  //1.2.1
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(200);
  //1.2.2
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(200);
  //1.3.1
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(200);
  //1.3.2
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(200);
  //2.1.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //2.2.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //2.3.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  //2.3.2
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //2.4.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  //2.4.2
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //2.5.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  //2.5.2
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //3.1.1
  digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //3.2.1
   digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //3.3.1
  digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //3.4.1
  digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //3.5.1
  digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //4.1.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
  //4.2.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
  //4.3.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
  //4.4.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
}

 

tsostik
Offline
Зарегистрирован: 28.02.2013

Вам уже сказали в самом начале - в один килобайт этот скетч не уместиться (Если использовать Arduino IDE). В принципе и никогда.

В один килобайт можно уместить программу на C (а лучше на асме), делающую то же самое. Если же Вы не хотите использовать C или асм, то сделать ничего нельзя. ATTiny для начинающих не предназначена, она преджназначена для людей, которые имеют нормальные навыки программирования.

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Ладно парни, если кому нагрубил, извиняйте, не со зла. Спасибо за советы, буду пытаться.

leshak
Offline
Зарегистрирован: 29.09.2011

 

hugoboss317 пишет:

Короче вот задание только для мастера дела, уместить это в 1К:

Ну и кому вот эту мешанину вычитывать? Зачем вам разбиратся с программированием если вы форум освоить не можете? Научитесь вначале код вставлять как код.

Во вторых, где в этой простыне намеки на попытки приминить for? Воспользоватся прочитаными знаниями?

Во вторых, а вы поскрольте вверх тему. В сообщении #15 вам дали практически готовый ответ.

А бить ноут - да ради бога :)  Особенно если вы сами его заработали/купили. А если "родители приобрели", то пожалуй все же не стоит. Лучше забросить програмирование и идти играть в футбол. Или с девушками встречатся. Среди них "плавающие запятые" встречаются крайне редко ;)

leshak
Offline
Зарегистрирован: 29.09.2011

О... ну вот. Другое дело :) Теперь оберните ваш повторящийся кусоки в for. Посмотрите как tsostik это делал в #15 . У него тоже digitalWrite-ты обертнуты фором. А вам, свои digitalWrite-ты обернуть нужно.  Ну и, у него по три раза каждый for повторяется, а вам свое количество подставить нужно.

Поробуйте это сделать. Потом показывайте "что получилось".

leshak
Offline
Зарегистрирован: 29.09.2011

К примеру:

 //4.1.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
  //4.2.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
  //4.3.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
  //4.4.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);

Заменяете на

for(byte i=0;i<4;i++){
  //4.1.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
}

И дальше по аналогии.

P.S. Причем тут мега?  :)

hugoboss317
Offline
Зарегистрирован: 21.03.2013

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

leshak
Offline
Зарегистрирован: 29.09.2011

hugoboss317 пишет:

Уважаемый leshak, Вы вероятно неверно оценили мой возрост и достаток, это я к тому что на ноут и всё отсальное зарабатываю сам и горжусь этим и признателен своей супруге за то что терпит меня со всеми моими электронными тараканами. 

Вот делать мне нечего вас оценивать :) 

Я если заметили, предолжил два варианта

if(сам_купил){
   разбить_ноут();
} else {
   иди_на_прогулку();
}

 

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

А дети/подростки - тут тоже встречаются. На форуме не видно же. Кстати - это абсолютно не означает что к ним будет какое-то "другое отношение". Хоть 5-ть лет, ну и что? Если хочет разбираться, старается понять то имеет право на помощь точно так же как и взрослые.

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

Единственно исключение - был тут подросток/персонаж с которым так ничего и не смогли добится. Постепенно все стали его игнорить. Но там причина - русский не родной явно. И видишь что человек старается, а .... помочь ничем не можешь. Просто нет понимаешь и все.

hugoboss317 пишет:

А теперь признателен и Вам т.к. понял чего я не правельно делал и как надо. Всё получилось

Ну может и не можем мы заставить лошадь пить воду, но вот приводить на водопой, даже брыкающихся, - есть опыт ;)

P.S. При чем тут мега?  ;D

hugoboss317
Offline
Зарегистрирован: 21.03.2013


1	if(сам_купил){
2	   разбить_ноут();
3	} else {
4	   иди_на_прогулку();
5	}

)))))))

Мне это уже нравится, вот я же говорил ..... Если вовремя не остановлюсь тоже таким стану.

Ладно парни, без обид, респект

Ещё увидимся, обещаю )))))))

P.S. ну как мега причём, через него програмирую ;)

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Как, уже всё? Я же еще попкорн не доел! Вот так всегда, на самом интересном месте..

leshak
Offline
Зарегистрирован: 29.09.2011

 

kisoft пишет:

Как, уже всё? Я же еще попкорн не доел! Вот так всегда, на самом интересном месте..

Если верить пророчествам tsostik, то  нас ждет вторая серия про "прямое управление портами"

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Блина, придется мнооооооооого попкорна запасать! ;)

Тяжело в учении, легко в бою! Удачи!

hugoboss317
Offline
Зарегистрирован: 21.03.2013

да да, запасайтесь, походу это была пилотная серия, А`лл би бак ещё. А если кто то думает что просто показали мне как сделать чтоб светодиодик мигнул не один раз а несколько, так вот дудки, я освоел такого оператора как for, а это ещё один шажок в долгом и тернистом пути изучения програмирования МК.Увидемся ;)

А, чуть не забыл. Вот просто нельзя было сразу написать :



for(byte i=0;i<3;i++){
// тут твоя операция// 

}

"i<3" - это количество раз которое она будет повторяться с помощью оператора for (3 раза)

а фигурными скобками for определяет приделы операции .

Вот никак нельзя было, да?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Уже всё сказали, но Вы не слышите. Если вопрос звучит непонятно, то вполне нормально попытаться объяснить по другому. Если Вы взрослый человек, то должны понимать, что время - дороже денег. У каждого свои планы на вечер.
Лично меня на работе достает задавать кучу наводящих вопросов, так еще и здесь. Сюда я прихожу отдохнуть и получить удовольствие от моего хобби. Я помогаю тем, кто хочет получить помощь, но не тем, кто приходя в чужой монастырь начинает качать права.
Воспринимайте мои слова как хотите, но если бы я захотел Вас обидеть, то я бы и говорил по другому. Вбросить дерьма на вентилятор не сложно, а смысл?
Успехов и удачи!

maksim
Offline
Зарегистрирован: 12.02.2012

hugoboss317 пишет:

void setup() {    
  pinMode(10, OUTPUT);  
  pinMode(12, OUTPUT); 

}
void loop() {
 //1.1.1 
   digitalWrite(10, HIGH);  
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(200);
  //1.1.2
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(200);
  
  //1.2.1
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(200);
  //1.2.2
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
   digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(200);
  //1.3.1
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
   digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(200);
  //1.3.2
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(200);
  //2.1.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //2.2.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //2.3.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  //2.3.2
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //2.4.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  //2.4.2
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //2.5.1
  digitalWrite(10, HIGH);   
  delay(50); 
  digitalWrite(10, LOW);    
  delay(50);
  //2.5.2
  digitalWrite(12, HIGH);   
  delay(50); 
  digitalWrite(12, LOW);    
  delay(50);
  //3.1.1
  digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //3.2.1
   digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //3.3.1
  digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //3.4.1
  digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //3.5.1
  digitalWrite(10, HIGH); digitalWrite(12, HIGH);  
  delay(200);
  digitalWrite(10, LOW); digitalWrite(12, LOW);    
  delay(200);
  //4.1.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
  //4.2.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
  //4.3.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
  //4.4.1
  digitalWrite(10, HIGH);delay(100);digitalWrite(12, LOW);delay(50);
  digitalWrite(12, HIGH);delay(100);
  digitalWrite(10, LOW); delay(100); digitalWrite(12, LOW);delay(300);
}

tsostik пишет:

Вам уже сказали в самом начале - в один килобайт этот скетч не уместиться (Если использовать Arduino IDE). В принципе и никогда.

В один килобайт можно уместить программу на C (а лучше на асме), делающую то же самое. Если же Вы не хотите использовать C или асм, то сделать ничего нельзя. ATTiny для начинающих не предназначена, она преджназначена для людей, которые имеют нормальные навыки программирования.

 

 

#define HIGH_3 PORTB|=1<<3
#define LOW_3 PORTB&=~(1<<3)
#define HIGH_4 PORTB|=1<<4
#define LOW_4 PORTB&=~(1<<4)

void setup() 
{    
  DDRB |= (1<<3) | (1<<4);
}

void loop() 
{
  for(byte i = 0; i < 3; i++)  
  {
    for(byte j = 0; j < 3; j++) 
    {
      HIGH_3;  
      delay(50); 
      LOW_3;    
      delay(50);
    } 
    delay(150);
    for(byte j = 0; j < 3; j++)
    {
      HIGH_4;  
      delay(50); 
      LOW_4;    
      delay(50);
    }    
    delay(150);
  }

  for(byte i = 0; i < 4; i++)
  {
    HIGH_3;  
    delay(50); 
    LOW_3;    
    delay(50);
    HIGH_4;  
    delay(50); 
    LOW_4;    
    delay(50);
  }

  for(byte i = 0; i < 5; i++)
  {
    HIGH_3; 
    HIGH_4;   
    delay(200);
    LOW_3; 
    LOW_4;   
    delay(200);
  }

  for(byte i = 0; i < 4; i++)
  {
    HIGH_3; 
    delay(150);
    HIGH_4;  
    delay(100);
    LOW_3; 
    delay(100); 
    LOW_4;  
    delay(300);
  }
}

 

 

#define PIN1 10
#define PIN2 12

void setup() 
{    
  pinMode(PIN1, OUTPUT);
  pinMode(PIN2, OUTPUT);
}

void loop() 
{
  for(byte i = 0; i < 3; i++)  
  {
    for(byte j = 0; j < 3; j++) 
    {
      digitalWrite(PIN1, HIGH);  
      delay(50); 
      digitalWrite(PIN1, LOW);   
      delay(50);
    } 
    delay(150);
    for(byte j = 0; j < 3; j++)
    {
      digitalWrite(PIN2, HIGH);  
      delay(50); 
      digitalWrite(PIN2, LOW);   
      delay(50);
    }    
    delay(150);
  }

  for(byte i = 0; i < 4; i++)
  {
    digitalWrite(PIN1, HIGH);  
    delay(50); 
    digitalWrite(PIN1, LOW); 
    delay(50);
    digitalWrite(PIN2, HIGH);
    delay(50); 
    digitalWrite(PIN2, LOW);   
    delay(50);
  }

  for(byte i = 0; i < 5; i++)
  {
    digitalWrite(PIN1, HIGH);  
    digitalWrite(PIN2, HIGH);  
    delay(200);
    digitalWrite(PIN1, LOW); 
    digitalWrite(PIN2, LOW);  
    delay(200);
  }

  for(byte i = 0; i < 4; i++)
  {
    digitalWrite(PIN1, HIGH);  
    delay(150);
    digitalWrite(PIN2, HIGH);  
    delay(100);
    digitalWrite(PIN1, LOW); 
    delay(100); 
    digitalWrite(PIN2, LOW); 
    delay(300);
  }
}

hugoboss317
Offline
Зарегистрирован: 21.03.2013

ну немного по другому я сделал, но спасибо, возьму на заметку. у меня 668 б получилось. А кто то говорил что никак меньше 1 к не получится.

Мужики, не в обиду, показывал первоначальные вопросы свои жене, она после второго, перефразированого сделала круглые глаза и сказала , "ТЮ, ЧТО ТУТ НЕ ПОНЯТНОГО, Я В ЭТОМ НЕ ПОНИМАЮ НИЧЕГО, НО ЧТО ТЫ ХОЧЕШЬ УЗНАТЬ И ТО ПОНЯЛА". а когда до иксов и игриков дошли, она сама сказала " ТЫ НАВЕРНОЕ ЗАВЯЗЫВАЙ С ЭТИМ, А ТО ТОЖЕ ЭЛЕМЕНТАРНОЕ ПОНИМАТЬ ПЕРЕСТАНЕШЬ". Я там уже просто на пальцах показал. А весь код как то стремался выкладывать, такая приметивщина, не подумал что кто то будет тратить своё время чтоб переписывать его так, как мне надо. tsostik действительно ответил на вопрос, но это я сейчас вижу что мне там надо было.

Как бы ни было, спасибо что уделили внимание. maksim, возьму на вооружение.

А что значит DDRB |= (1<<3) | (1<<4)?

maksim
Offline
Зарегистрирован: 12.02.2012
hugoboss317
Offline
Зарегистрирован: 21.03.2013

Принято, спасибо.

step962
Offline
Зарегистрирован: 23.05.2011

hugoboss317 пишет:

Мужики, не в обиду, показывал первоначальные вопросы свои жене, она после второго, перефразированого сделала круглые глаза и сказала , "ТЮ, ЧТО ТУТ НЕ ПОНЯТНОГО, Я В ЭТОМ НЕ ПОНИМАЮ НИЧЕГО, НО ЧТО ТЫ ХОЧЕШЬ УЗНАТЬ И ТО ПОНЯЛА". а когда до иксов и игриков дошли, она сама сказала " ТЫ НАВЕРНОЕ ЗАВЯЗЫВАЙ С ЭТИМ, А ТО ТОЖЕ ЭЛЕМЕНТАРНОЕ ПОНИМАТЬ ПЕРЕСТАНЕШЬ". Я там уже просто на пальцах показал.

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

Цитата:

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

А мы должны были увидеть это еще до того, как вы смогли сформулировать свой вопрос чуть конкретнее, чем, "мужики, как сделать, чтобы работало"? ;)

 

tsostik
Offline
Зарегистрирован: 28.02.2013

Что же, я рад, что мои оценки минимального размера скетча в исполнении ардуино IDE оказалась пессимистичными -)

Интереса ради скомпилировал этот код, указывая ардуине разные платформы.

Результаты интересные - от 950 байт (примерно, сейчас точную цифру не помню) на UNO через примерно 1100 на меге до 4к на леонардо -)

maksim, а как вам удалось заставить IDE делать код для tiny? Я прописал в boards.txt какие-то параметры, после чего полезла куча ошибок компиляции, связанная с тем, что для mcu=tiny13 в avrgcc не определены куча макросов, на которые полагается ArduinoIDE