Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Janos250

    őstag

    válasz Xpod #8397 üzenetére

    Egyszer már mutattam, hogy mennyire pofon egyszerű mindenféle spéci könyvtárak nélkül az RMT-vel a WS2812 led szalag használata.
    core1: a led feltöltés,
    core0: minden egyéb.

    void transmitOnePixel( RGB pixel){
    do {
    } while (*((volatile uint32_t *) (0x3FF56060)) & (1 << 24) ) ; // busy?

    uploadToRMTmem(pixel.g,0) ;

    // start transmit:
    // RMT.conf_ch[chanelNum].conf1.mem_rd_rst = 1;
    *((volatile uint32_t *) (0x3FF56024)) |= (1 << 3) ;
    // RMT.conf_ch[chanelNum].conf1.tx_start = 1;
    *((volatile uint32_t *) (0x3FF56024)) |= 1 ;

    uploadToRMTmem(pixel.r,1) ;
    uploadToRMTmem(pixel.b,2) ;

    }

    void uploadToRMTmem( uint8_t oneByte, uint8_t n){
    uint16_t offset = n*32;
    uint8_t i ;

    for ( i = 0 ; i < 8 ; i++) {

    if ( oneByte & (128 >> i ) ){
    *((volatile uint32_t *) (0x3FF56800 + n * 32 + i * 4)) = WS2812bitHIGH32 ;
    }
    else {
    *((volatile uint32_t *) (0x3FF56800 + n * 32 + i * 4)) = WS2812bitLOW32 ;
    } ;

    } ; // end for

    } ; // end uploadToRMTmem

    [ Szerkesztve ]

    Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

Új hozzászólás Aktív témák