#51 Re: Програмування Arduino » Sk6812 » 2019-03-15 15:13:30

Ага, и затормозить это всё дело еще и UARTом )))

#52 Re: Програмування Arduino » Sk6812 » 2019-03-15 13:34:27

Чаще с одним пином, потому-что работают с лентой на аппаратном уровне, например подключают по SPI или UART, а этих интерфейсов на mega328 по одному, если делать программно, то можно хоть на все ноги ленты повесить, будет сказываться только на скорости, т.к. выброс информации в ленты будет происходить последовательно.

#define LED_DDR DDRB
#define LED_PORT PORTB
#define LED_PIN PINB
#define LED_BIT _BV(0)
#define NOP __asm__("nop\n\t")

void Ai_WS2811::sendLedData(void) 
{
  cli();
  register byte *p = m_pData;
  register byte *e = m_pDataEnd;
  volatile uint8_t b;
  while(p != e) 
  { 
    b   = *p++;    // Current byte value
    byte i=8;
    do {
      if ((b&0x80)==0) {
        // Send a '0'
        if (F_CPU==16000000L) {
          LED_PIN=LED_BIT;NOP;// Hi (start)
          NOP;NOP;            // Hi
          LED_PIN=LED_BIT;NOP;// Lo (250ns)
          NOP;NOP;            // Lo
          NOP;NOP;            // Lo (500ns)
        }   
        else if (F_CPU==8000000L) {
          LED_PIN = LED_BIT;  // Hi (start)
          NOP;                // Hi
          LED_PIN = LED_BIT;  // Lo (250ns)
          NOP;                // Lo
          NOP;                // Lo (500ns)
          NOP;                // Lo (data bit here!)  
          NOP;                // Lo (750ns)
        }   
      }   
      else {
        // Send a '1'
        if (F_CPU==16000000L) {
          LED_PIN=LED_BIT;NOP;// Hi (start)
          NOP;NOP;            // Hi
          NOP;NOP;            // Hi (250ns)
          NOP;NOP;            // Hi
          NOP;NOP;            // Hi (500ns)
          LED_PIN=LED_BIT;    // Lo (625ns)
        }   
        else if (F_CPU==8000000L) {
          LED_PIN = LED_BIT;  // Hi (start)
          NOP;                // Hi
          NOP;                // Hi (250ns)
          NOP;                // Hi
          NOP;                // Hi (500ns)
          NOP;                // Hi (data bit here!)
          LED_PIN = LED_BIT;  // Lo (750ns)
        }   
      }   
      b = b+b;
    } while (--i!=0);
  }
  sei();
}  

#53 Re: Програмування Arduino » Изготовлю на заказ ! » 2019-02-28 16:50:06

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

#54 Re: Програмування Arduino » Изготовлю на заказ ! » 2019-02-28 12:32:07

Считать CID вы можете любой ардуиной и шилдом. А вот записать просто так не получиться. Не все карты поддерживают перезапись и в режиме SPI эта команда не поддерживается, только SDIO.

Підвал форуму