ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Четверг
28 мая
/894064
Топик полностью
Shatun_ (07.01.2019 10:35, просмотров: 11) в ответ на Не :) Нашел перед НГ у себя несколько PIC16F1454. Легких путей мы не ищем - ардуины не пройдут! ;), посему зародилась мысль - а не забацать ли именно на этой таракашке чё-нить "для души", пока все спят до середины Января. Заодно пощупать за вымя - автор: Гудвин
Насчет времянки для WS2812B. У меня получилось и на помедленней. Пришлось ассемблер использовать. На С было не предсказуемо, плюс шлак от XC8 free делал код медленным.  void putColor(uint8_t r, uint8_t g, uint8_t b) { c[0] = r; c[1] = g; c[2] = b; cj = LEDS_COUNT; INTERRUPT_GlobalInterruptDisable(); #asm LED_LOOP: banksel _c MOVF _c & 0x7F, W banksel _cc MOVWF _cc & 0x7F banksel _c MOVF (_c + 1) & 0x7F, W banksel _cc MOVWF (_cc + 1) & 0x7F banksel _c MOVF (_c + 2) & 0x7F, W banksel _cc MOVWF (_cc + 2) & 0x7F MOVLW 24 banksel _ci MOVWF _ci & 0x7F LED_BIT_LOOP: banksel _cc BTFSC _cc & 0x7F, 7 BRA LED_SEND_1 banksel LATC BSF LATC, 0x5 BCF LATC, 0x5 BRA LED_SEND_DONE LED_SEND_1: banksel LATC BSF LATC, 0x5 NOP NOP BCF LATC, 0x5 LED_SEND_DONE: banksel _cc RLF (_cc + 2) & 0x7F RLF (_cc + 1) & 0x7F RLF _cc & 0x7F banksel _ci DECFSZ _ci & 0x7F BRA LED_BIT_LOOP banksel _cj DECFSZ _cj & 0x7F BRA LED_LOOP #endasm INTERRUPT_GlobalInterruptEnable(); __delay_us(50); }
Ответить
Ответы