ft60e210-ws2812/FT60E210-PWM.C

188 lines
4.7 KiB
C++
Raw Permalink Normal View History

2024-07-26 14:17:44 +08:00
//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<6D><65>interrupt ISR
//parameters<72><73><EFBFBD><EFBFBD>
//returned value<75><65><EFBFBD><EFBFBD>
//===========================================================
void interrupt ISR(void)
{
}
//===========================================================
//Function name<6D><65>main
//parameters<72><73><EFBFBD><EFBFBD>
//returned value<75><65><EFBFBD><EFBFBD>
//===========================================================
main()
{
OSCCONbits.IRCF = 0b111; // 111 16M
MSCONbits.CKMAVG = 1; // LIRC <20><> HIRC <20><><EFBFBD><EFBFBD>У׼ʱ 4 <20><>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
T2CON0bits.TMR2ON = 1; // ʹ<><CAB9> Timer2
MSCONbits.CKCNTI = 1; // <20><>ʼУ׼
while(CKMIF == 1); // <20>ȴ<EFBFBD>У׼<D0A3><D7BC><EFBFBD><EFBFBD>
NOP4(); // <20>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
TRISA4 = 0; // ʹ<><CAB9>PA4<41><34><EFBFBD><EFBFBD>
nPAPU = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PA<50><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WPUA4 = 1; // PA4<41><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
while(1)
{
PA4 = 0;
for (int i = 0; i< 80; i++) // <20><>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
}
}
//===========================================================