//Project: FT60E210-PWM.prj // Device: FT60E21X // Memory: Flash 1KX14b, EEPROM 128X8b, SRAM 64X8b // Author: //Company: //Version: // Date: //=========================================================== //=========================================================== #include "SYSCFG.h" #include "FT60F21X.h" #include "sysnop.h" //=========================================================== //Variable definition //=========================================================== #define WS2812_HIGH (PA4 = 1) #define WS2812_LOW (PA4 = 0) #define WS2812_ZERO { WS2812_HIGH; WS2812_LOW; NOP(); NOP(); } #define WS2812_ONE { WS2812_HIGH; NOP(); NOP(); WS2812_LOW; } //void WS2812_HIGH(void) //{ //#asm // bsr 05H,4 //#endasm //} //void WS2812_LOW(void) //{ //#asm // bcr 05H,4 //#endasm //} //#define WS2812_ZERO { WS2812_HIGH; WS2812_LOW; NOP(); NOP(); } //#define WS2812_ONE { WS2812_HIGH; NOP(); NOP(); WS2812_LOW; } //=========================================================== //Function name:interrupt ISR //parameters:无 //returned value:无 //=========================================================== void interrupt ISR(void) { } //=========================================================== //Function name:main //parameters:无 //returned value:无 //=========================================================== main() { OSCCONbits.IRCF = 0b111; // 111 16M MSCONbits.CKMAVG = 1; // LIRC 和 HIRC 交叉校准时 4 次平均测量模式 T2CON0bits.TMR2ON = 1; // 使能 Timer2 MSCONbits.CKCNTI = 1; // 开始校准 while(CKMIF == 1); // 等待校准完成 NOP4(); // 闲得无聊写的 TRISA4 = 0; // 使能PA4输出 nPAPU = 0; // 分组控制PA上拉电阻 WPUA4 = 1; // PA4上拉电阻使能 while(1) { PA4 = 0; for (int i = 0; i< 80; i++) // 等280us { NOP(); } PA4 = 1; // asm("BCR STATUS,5"); // 1 WS2812_ONE; // G7 WS2812_ZERO; // G6 WS2812_ONE; // G5 WS2812_ZERO; // G4 WS2812_ONE; // G3 WS2812_ZERO; // G2 WS2812_ONE; // G1 WS2812_ZERO; // G0 WS2812_ONE; // R7 WS2812_ZERO; // R6 WS2812_ONE; // R5 WS2812_ZERO; // R4 WS2812_ONE; // R3 WS2812_ZERO; // R2 WS2812_ONE; // R1 WS2812_ZERO; // R0 WS2812_ONE; // B7 WS2812_ZERO; // B6 WS2812_ONE; // B5 WS2812_ZERO; // B4 WS2812_ONE; // B3 WS2812_ZERO; // B2 WS2812_ONE; // B1 WS2812_ZERO; // B0 // 2 WS2812_ONE; // G7 WS2812_ONE; // G6 WS2812_ONE; // G5 WS2812_ONE;; // G4 WS2812_ONE; // G3 WS2812_ONE; // G2 WS2812_ONE; // G1 WS2812_ONE; // G0 WS2812_ZERO; // R7 WS2812_ZERO; // R6 WS2812_ZERO; // R5 WS2812_ZERO; // R4 WS2812_ZERO; // R3 WS2812_ZERO; // R2 WS2812_ZERO; // R1 WS2812_ZERO; // R0 WS2812_ZERO; // B7 WS2812_ZERO; // B6 WS2812_ZERO; // B5 WS2812_ZERO; // B4 WS2812_ZERO; // B3 WS2812_ZERO; // B2 WS2812_ZERO; // B1 WS2812_ZERO; // B0 // 3 WS2812_ZERO; // G7 WS2812_ZERO; // G6 WS2812_ZERO; // G5 WS2812_ZERO; // G4 WS2812_ZERO; // G3 WS2812_ZERO; // G2 WS2812_ZERO; // G1 WS2812_ZERO; // G0 WS2812_ONE; // R7 WS2812_ONE; // R6 WS2812_ONE; // R5 WS2812_ONE;; // R4 WS2812_ONE; // R3 WS2812_ONE; // R2 WS2812_ONE; // R1 WS2812_ONE; // R0 WS2812_ZERO; // B7 WS2812_ZERO; // B6 WS2812_ZERO; // B5 WS2812_ZERO; // B4 WS2812_ZERO; // B3 WS2812_ZERO; // B2 WS2812_ZERO; // B1 WS2812_ZERO; // B0 // 4 WS2812_ZERO; // G7 WS2812_ZERO; // G6 WS2812_ZERO; // G5 WS2812_ZERO; // G4 WS2812_ZERO; // G3 WS2812_ZERO; // G2 WS2812_ZERO; // G1 WS2812_ZERO; // G0 WS2812_ZERO; // R7 WS2812_ZERO; // R6 WS2812_ZERO; // R5 WS2812_ZERO; // R4 WS2812_ZERO; // R3 WS2812_ZERO; // R2 WS2812_ZERO; // R1 WS2812_ZERO; // R0 WS2812_ONE; // B7 WS2812_ONE; // B6 WS2812_ONE; // B5 WS2812_ONE; // B4 WS2812_ONE; // B3 WS2812_ONE; // B2 WS2812_ONE; // B1 WS2812_ONE; // B0 } } //===========================================================