Плейер световых эффектов - помогите стать лучше

Обсуждаем контроллеры компании Atmel.
Ответить
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

У МЕНЯ ТУПИК . ПОМОГИТЕ :roll:
СпойлерCLR GB=FF
V4=00
RPT
V3=RD
V0=00
V3-05
IV4>V3
V3+0A
IV4<V3
RPT
MC=V0
GI=V3
WT=01
V0+01
LV0<03
EI
EI
V4=V3
INF

ЭТО ПОНЯТНО
IV2>02
IV2<0A
MC=V2 столбец будет активирован, если переменная меньше 0A, но больше 02 (то есть в промежутке от 3 до 9)
EI
EI


А НА ОБОРОТ, КАК СДЕЛАТЬ ЧТОБ СЛУЧАЙНОЕ ЧИСЛО НЕ ПОПАЛО В ЭТОТ ПРОМЕЖУТОК
например V3=RD скажем=63
значит промежуток от 5Е до 68 закрыт

РАБОТАЕТ ТОЛЬКО ЕСЛИ ПОВТОРЯТЬ ТЕЛО ДВА РАЗА
СпойлерCLR GB=FF
V4=00
RPT
V3=RD
V0=00
V3-05
IV4>V3
RPT
MC=V0
GI=V3
WT=01
V0+01
LV0<03
EI
V3+0A
IV4<V3
RPT
MC=V0
GI=V3
WT=01
V0+01
LV0<03
EI
V4=V3
INF
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

можно сделать хитрый трюк: если попали в запрещенный промежуток, выполнить команду INF, чтобы снова перескочить на начало цикла и не делать то, что обычно делается при НЕ попадании в запретный интервал...

Код: Выделить всё

CLR PC=FFFFFF
RPT
  V0=RP
  IV0>05
    IV0<0A
      INF если попали в интервал от 6 до 9 - выполнится команда _INF_ и мы попадем на начало цикла, чтобы снова взять случайный номер пиксела
    EI
  EI
  сюда попадаем только если _V0_ не попала в указанный интервал
  PM=V0
  PNT
INF
тут только надо быть уверенным, что рано или поздно возникнет условие, при котором команда INF будет "обойдена", иначе все зависнет бесполезно
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

я не совсем понял, зачем вам "не попадать" в промежуток.
СпойлерCLR GB=FF
RPT
V3=RD ВЫБИРАЕТСЯ СЛУЧАЙНЫЙ ЦВЕТ
IV4!V3 ставим условие что бы тот же цвет не получился
MR=00
PI=V4
WT=01
MSL
EI
V4=V3
INF

ВЫБИРАЕТСЯ СЛУЧАЙНЫЙ ЦВЕТ ПРОХОДИТ ЦИКЛ
ОПЯТЬ СЛУЧАЙНЫЙ ЦВЕТ а вдруг такой же?
чтоб не произошло этого мы ставим условие и все бы хорошо
но на глаз что к примеру зеленый что светло зеленый один хрен
вот и нужен этот промежуток
Реклама
Эиком - электронные компоненты и радиодетали
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

отлично! :))
спасибо :beer:

пожалуйста подпишите в напоминальник про мои светики ws2811, а может и не только мои

Изображение
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

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

Мой уютный бложик... заходите!
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

выкладываю обновление симулятора: https://drive.google.com/file/d/1ckKRz8 ... TK_Eo/edit
альтернативное облако: https://cloud.mail.ru/public/999v%2FRYUpR6bGR

Изображение

основные новшества:
1. кардинально переделана система просмотра переменных и т.п. - окно Watch. теперь можно:
- добавлять произвольно переменные, пикселы и т.п. при помощи нажатия на кнопочку (лупа с плюсом)
- удалять лишнее из списка просмотра нажатием на кнопочку (лупа с крестиком)). если покликать на "лишнем" при нажатом Ctrl - можно выделить несколько элементов и удалить из сразу одним нажатием
- очистить окно вообще - метелка
- в редакторе скрипта выделить переменную и нажать Ctrl-NumPlus (плюс на "цифровой" клавиатуре справа) - переменная добавится
- при просмотре "матричных" параметров можно видеть целиком текущую строк/столбец - по цвету, яркости или затуханию
- можно вывести переменные "массивом", т.е. в одной строке (для экономии места)
- можно временно "свернуть" группу просмотра, а потом развернуть
- добавлять и удалять наблюдаемые элементы можно как в режиме отладки, так и в любое другое время (если объект недоступен, отображаетс вопрос)
- в окне Watch красным подсвечиваются те значения, которые изменились после исполнения последней команды

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

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

4. добавлены диагностические сообщения в протокол работы, а так же индикация исполнения скрипта в окне Info.

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

6. изменен шифт в редакторе и окне наблюдения

7. содержимое окошка "протокла" работы теперь можно очищать и/или сохранять в файл (автоматически - через настроки параметров или вручную через всплывающее меню). если будут проблемы - теперь можно прилагать не скриншот, а текстовый файл (но перед этим желательно включать расширенный режим, указав -D в командной строке)

буду благодарен за замечаний и предложения по работе симулятора.
Вложения
Screenshot_10.png
(191.95 КБ) 767 скачиваний
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Сообщение dgrett »

Ещё не делал, не собирал, только наблюдаю. Пока времени нет. Но снимаю шляпу со своей головы, ARV, грандиозная работа, супер! С телефона не умею плюсануть:)
Я всё-всё узнAю и стану профессором.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Стараюсь... Уже есть улучшения к предыдущему релизу.
Добавляю русификацию и заканчиваю проект.

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

Мой уютный бложик... заходите!
Контактная информация:
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Сообщение dgrett »

Ну, ДЛЯ МЕНЯ русификация - излишня, русский- не первый мой язык. А осенью, скорее всего, займусь плейером. (Если сумею разобраться:) ).
Я всё-всё узнAю и стану профессором.
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

а где же выбор скрипта , а где же ракета
Изображение
:idea: :dont_know:

Добавлено after 10 minutes 10 seconds:
а рисовать как по кдрово нет!!!
СпойлерИзображение
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

проверьте в настройках - не стоит ли галочка Do not show local buttons panels? снимите, если стоит - кнопки должны появиться.
что касается остального - удалите файл с расширением layout и запустите DSM с "чистого листа" :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

выкладываю обновление (старая ссылка на предыдущую версию пока действует): https://cloud.mail.ru/public/Jr3P%2FWbsMh2eTZ
это ссылка на архив, в котором помимо самого симулятора dsm.exe есть папка с "локализациями" и файл истории, в котором написано все самое важное с прошлого раза.

главное: теперь есть поддержка разных языков интерфейса!

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

в папке locale (распаковать туда же, где и dsm.exe) есть 2 готовых - dsm.en.po и dsm.ru.po. любой из них копируете в, например, dsm.kz.po, затем редактируете его, вставляя свои переводы всех строк, для которых есть перевод (ни в коем случае не удалять символы %s, %d и \n - будет плохо!). все, теперь у вас будет поддержка казахского языка :) лишние флаги можно удалить - название флага должно совпадать с названием кодировки, кодировка должна обозначаться двумя буквами. если нужного флага нет - можно нарисовать свой png-файл размером 32х32 пиксела.

переключение языка (меню Service-Language) не всегда отрабатывает корректно, есть и дефекты перевода... но начало положено.

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

Мой уютный бложик... заходите!
Контактная информация:
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

ARV в общем проблема с инициализацией карты памяти.
Вы включаете удвоенную скорость SPI до инициализации карты, вроде как советуют удвоенную скорость SPI включать после инициализации карты?
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

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

Ну да ладно, я поменял: SPSR = _BV(SPI2X);

Добавил в mmc.c DSTATUS disk_initialize (void)

Код: Выделить всё

	rcv_spi();
	SPSR = _BV(SPI2X);
	return ty ? 0 : STA_NOINIT;
Добавил в main.c static bool load_config(void){

Код: Выделить всё

if(is_dbg_mode()) { SPSR = _BV(SPI2X); return true; }
Удалил в script_cmd.c INIT(8){

Код: Выделить всё

	SPCR = _BV(SPE) | _BV(MSTR) | _BV(CPHA);//fosc/2 16MHz/2
	//SPSR = _BV(SPI2X); // думаю здесь можно было бы и SPSR = 0, не знаю что при резете получается, обнуляется этот регистр или нет?
	SPSR; SPDR;
	enter_sd_mode();
Теперь все карты, которые у меня есть, с первого раза определяются.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18686
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

странно это всё...
можете как-то сообщить информацию о ваших картах? производитель, объем, класс тип...

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

Мой уютный бложик... заходите!
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="ARV",url="/forum/viewtopic.php?p=3678061#p3678061"]странно это всё...[/uquote]
Если при инициализации карты скорость SPI превышает 400 KHz указанные в спецификации, то ничего странного. А она вроде там 8 MHz.
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Здесь написано
ВАЖНО : инициализация проводится на низко скоростном режиме! Частота клока карты не более 400 кГц!!!
Речь идет про эту строчку кода

Код: Выделить всё

	for (n = 10; n; n--){
		rcv_spi();	/* 80 dummy clocks with CS=H */
	}
перевод карты в spi режим.
Вот кусок кода
Спойлер

Код: Выделить всё

#define SPI_INIT      { SPCR = 0x52; SPSR = 0x00; }    
#define SPI_HIGHSPEED { SPCR = 0x50; SPSR |= (1<<SPI2X); delay_ms(1); }
/**************************************************************************
*  Инициализация карты (эта функция вызывается функцией sd_init)          *
**************************************************************************/

static BYTE sd_init_int() {
  BYTE i;

  /* Сбрасываем SDHC флаг */
  sd_sdhc = 0;

  /* Минимум 80 пустых тактов */
  for(i=20; i; --i)
    spi_receive();   

  /* CMD0 Посылаем команду сброса */
  if(sd_sendCommand(GO_IDLE_STATE, 0) != 1) goto abort;

  /* CMD8 Узнаем версию карты */
  i = 0;
  if(sd_sendCommand(SEND_IF_COND, 0x000001AA)) 
    i = 1;

  /* CMD41 Ожидание окончания инициализации */
  if(sd_check()) goto abort;

  /* Только для второй версии карты */
  if(i) {
    /* CMD58 определение SDHC карты. Ответ обрабатывается в функции sd_sendCommand */
    if(sd_sendCommand(READ_OCR, 0) != 0) goto abort;
  }
  
  return 0;    
abort:
  return 1;
}                            

/**************************************************************************
*  Инициализация карты                                                    *
**************************************************************************/

BYTE sd_init() {  
  BYTE tries;

  /* Освобождаем CS на всякий случай */
  SD_CS_DISABLE

  /* Включаем SPI */
  SPI_INIT

  /* Делаем несколько попыток инициализации */
  tries = 10;  
  while(sd_init_int()) 
    if(--tries == 0) {
      lastError = ERR_DISK_ERR;
      return 1;       
    }
          
  /* Вклчюаем максимальную скорость */
  SPI_HIGHSPEED     
  
  return 0;
}
Обратите внимание где включается максимальная скорость spi, SPCR = 0x52; и SPCR = 0x50; и удвоение скорости (с этим я еще не пробовал, можно поэкспериментировать)
Карты памяти у меня SD до 4 гигов (512Мб 1Гб 2Гб), есть еще 8Гб на она SDHC (ее не пробовал).
Ответить

Вернуться в «AVR»