16+
Вторник
23 июля
Вход |Карта сайта |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры PIC

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
Гудвин  (07.01.2019 11:01) , в ответ на Насчет времянки для WS2812B. У меня получилось и на помедленней. Пришлось ассемблер использовать. На С было не предсказуемо, плюс шлак от XC8 free делал код медленным. автор: Shatun_
Не понимаю я все эти MOVLWLWLW с банками ;) Тупо наговнокодил: 
void send_ws(void)
{
 static uint8_t cb;
 static uint8_t i;
  for (i=0;i<36;i++)
 {
     cb=RxDataBuffer[i];
     SSP1BUF = (cb & 0x80) ? 0xFF : 0xF0;
	 cb <<= 1;
      asm("nop"); 
      asm("nop"); 
      asm("nop"); 
     SSP1BUF = (cb & 0x80) ? 0xFF : 0xF0;
	 cb <<= 1;
      asm("nop"); 
      asm("nop"); 
      asm("nop"); 
     SSP1BUF = (cb & 0x80) ? 0xFF : 0xF0;
	 cb <<= 1;
      asm("nop"); 
      asm("nop"); 
      asm("nop"); 
     SSP1BUF = (cb & 0x80) ? 0xFF : 0xF0;
	 cb <<= 1;
      asm("nop"); 
      asm("nop"); 
      asm("nop"); 
     SSP1BUF = (cb & 0x80) ? 0xFF : 0xF0;
	 cb <<= 1;
      asm("nop"); 
      asm("nop"); 
      asm("nop"); 
     SSP1BUF = (cb & 0x80) ? 0xFF : 0xF0;
	 cb <<= 1;
      asm("nop");
      asm("nop"); 
      asm("nop");  
     SSP1BUF = (cb & 0x80) ? 0xFF : 0xF0;
	 cb <<= 1;
      asm("nop");
      asm("nop"); 
      asm("nop"); 
     SSP1BUF = (cb & 0x80) ? 0xFF : 0xF0;
 }
}
Задержка 1.25 us возникает во время чтения очередного байта. Но WS, как оказалось, это вполне переваривает. Так что можно и сдвиги в цикл вставить.
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX