Balancer: Все сообщения за 24 Мая 2017 года

 
ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

Balancer

администратор
★★★★★
Luchnik> Стоит ли тогда упирать так на эту легитимность?

С нашей точки зрения — нет. Мы и не упираем :) Но у них — другое мировоззрение.

Luchnik> Если она исчезает/возникает "по желанию". )

Как и справедливость, в общем, тоже :) В смысле, в зависимости от разных желаний разных сторон «справедливость» тоже сильно разная.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  44

Balancer

администратор
★★★★★
m-dva> эволюцию движет конкуренция видов

Никогда не видел такой трактовки. Эволюцию движет давление отбора. Давление отбора никак прямо с «конкуренцией видов» не коррелирует. Только косвенно — через конкуренцию за ресурсы.

m-dva> наиболее конкурентны социально организованые виды

Хищники чаще всего одиночки и более развиты, чем их социальные жертвы.

m-dva> Отсюда следует, что техногенная цивилизация вершина эволюции.

Прямо — никак не следует :)

m-dva> Раз весь мир состоит из одних и тех же элементов то логично допустить, что и живая природа (ДНК, РНК ) развивается по одним и тем же законам.

— Даже в рамках ДНК/РНК может быть куда больше вариантов, чем реализовалось на Земле
— Даже в рамках углеродной/белковой химии ДНК/РНК не единственные возможные носители информации. Например, есть ещё КНК, не реализовавшиеся в земной биологии.
— И хотя я не сторонник неуглеродной жизни как маловероятной чисто физхимически, малая вероятность ещё не делает неуглеродную жизнь совсем невозможной. И это только в области химии. А ещё есть всякая пылевая плазма, в которой я не разбираюсь, так что не могу объективно оценить вероятность организации жизни в такой.
— А может есть и ещё что-то, до чего земная наука пока не докопалась :)

m-dva> Вполне вероятно, что различия минимальны,- только числом, формой конечностей и языком общения.

Ну-ну :)
… чтобы понять рекурсию, нужно сперва понять рекурсию …  44

Balancer

администратор
★★★★★
Полл> Про то, что это невероятное событие произошло одновременно в паре сотен триб, чтобы набрать обсуждаемые 2000, не верю в принципе.

Вообще, про несколько тысяч минимальной популяции встречалось в разных источниках. Хотя я те статьи, которые помню, не нашёл, но гуглится такое:

Речь может идти о сокращении общего числа людей до нескольких тысяч человек. Данные проекта согласуется с одной из последних теорий, согласно которой человечество в начале своего пути стояло на грани вымирания. После бурного роста численности количество Homo sapiens на Земле могло упасть всего до двух тысяч человек.

// Человеческая раса 100 тысяч лет была разделена на две группы - Газета.Ru
 


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

Те две тысячи человек и являются предками всех 6,6 млрд нынешних жителей земного шара.

Подробности исследования опубликованы в журнале American Journal of Human Genetics.

// 70 тысяч лет назад человечество оказалось на грани вымирания
 


Приблизительно 70 тысяч лет назад, как раз во время исхода предков современного человека из Африканского континента, их численность едва достигала... 2000 человек.

Это фактически означало, что человечество оказалось на грани вымирания — на самом краю.

// Сто тысяч лет назад человечество было на грани уничтожения
 


По разным оценкам количество выживших людей составляло от 1 до 10 тыс. человек.

// Бутылочное горло в истории человечества, древние люди - великаны и т.д. - Антропогенез.РУ
 
… чтобы понять рекурсию, нужно сперва понять рекурсию …  44

Balancer

администратор
★★★★★
Bredonosec> ну вот зачем, спрашивается?

«403 Forbidden»

Не пущают.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  44

Balancer

администратор
★★★★★
Bredonosec> ну вот зачем, спрашивается?

Тут всё нормально в рамках традиции. Принял мученическую смерть за веру.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  58.0.3029.8358.0.3029.83

Balancer

администратор
★★★★★
Разбираюсь с низкоуровневым программированием матрицы. Это жесть! :D

Логика работы такая.

Матрица фактически разделена на два блока, верхние 16 строк и нижние 16 строк. В первые пишут через R1, G1 и B1, во вторые, соответственно, через R2, G2 и B2.

Одновременно светится только одна строка. Для полноценного свечения нужно просто организовывать развёртку. Фактически памяти там в каждой половине экрана — один сдвиговый регистр + выбор адреса, куда ему светить.

Сигналом LAT (пиком высокого уровня) сигнализируем, чтобы сдвиговый регистр принял строку данных. Дальше в цикле 64 раза выставляем данные (R1,G1,B1,R2,G2,B2) и запихиваем их низким импульсом CLK. Сразу в оба сдвиговых регистра.

Входами A, B, C, D выбираем строку, в которой светится этот сдвиговый регистр. Точнее, будут светиться две строки, в первой и второй половинах.

Для того, чтобы избегать мерцания и призраков, высоким уровнем OE на время манипуляций можно гасить отображение.

Т.е. полный цикл выглядит примерно так:

code cpp
  1.  
  2. // Цикл по строкам в каждой половине экрана
  3. for(int row=0; row<16; row++)
  4. {
  5.     // Вырубаем отображение
  6.     digitalWrite(OE, HIGH);
  7.  
  8.     // Указываем принять данные
  9.     digitalWrite(LAT, HIGH);
  10.     digitalWrite(LAT, LOW);
  11.  
  12.     // Цикл вывода светодиодов в строке
  13.     for(int i=0; i<64; i++)
  14.     {
  15.         // Выставляем биты включения светодиодов
  16.         digitalWrite(R1, r1);
  17.         digitalWrite(G1, g1);
  18.         digitalWrite(B1, b1);
  19.         digitalWrite(R2, r2);
  20.         digitalWrite(G2, g2);
  21.         digitalWrite(B2, b2);
  22.  
  23.         // Отправляем выставленное значение
  24.         digitalWrite(CLK, LOW);
  25.         digitalWrite(CLK, HIGH);
  26.     }
  27.  
  28.     // К этому месту строка светодиодов загружена
  29.  
  30.     // Выставляем адрес для отображения
  31.  
  32.     digitalWrite(A, row & B00000001);
  33.     digitalWrite(B, row & B00000010);
  34.     digitalWrite(C, row & B00000100);
  35.     digitalWrite(D, row & B00001000);
  36.  
  37.     digitalWrite(OE, LOW);
  38. }


Правда, в таком виде цикл вывода будет работать ОЧЕНЬ медленно (digitalWrite работает медленно!), экран будет очень тёмный и будет мерцать, т.к. заполнение матрицы будет происходить бОльшую часть времени.

Для ускорения работы нужно делать запись сразу всего блока цветов одной записью в регистр. Например, в случае MEGA вешаем R1,G1,B1,R2,G2,B2 на, соответственно, 24,25,26,27,28 и 29 пин. И тогда это будут биты со 2 по 7 регистра PORTA. А CLK пусть висит на 11 порту, это 5 бит PORTB. Внутренний цикл станет примерно таким:

code cpp
  1.     // Цикл вывода светодиодов в строке
  2.     for(int i=0; i<64; i++)
  3.     {
  4.         // Выставляем биты включения светодиодов (младшие два бита обнуляются)
  5.         PORTA = (r1<<2) | (g1 << 3) | (b1 << 4) | (r2 << 5) | (g2 << 6) | (b2 << 7


Дальше »»»
… чтобы понять рекурсию, нужно сперва понять рекурсию …  44

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru