188 lines
4.7 KiB
C++
188 lines
4.7 KiB
C++
|
//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
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
//===========================================================
|