From d8e642f4c66b0d8885a109fa0db9d8e9c31d5670 Mon Sep 17 00:00:00 2001 From: dreamcmi <1912544842@qq.com> Date: Fri, 26 Jul 2024 14:17:44 +0800 Subject: [PATCH] init project --- .gitignore | 16 ++++ FT60E210-PWM.C | 187 +++++++++++++++++++++++++++++++++++++++++++++++ FT60E210-PWM.ini | 60 +++++++++++++++ FT60E210-PWM.prj | Bin 0 -> 332 bytes sysnop.h | 48 ++++++++++++ 5 files changed, 311 insertions(+) create mode 100644 .gitignore create mode 100644 FT60E210-PWM.C create mode 100644 FT60E210-PWM.ini create mode 100644 FT60E210-PWM.prj create mode 100644 sysnop.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..271ca50 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +*.asm +*.bin +*.cmf +*.cof +*.d +*.hex +*.hxl +*.lpp +*.map +*.map +*.obj +*.p1 +*.rlf +*.sdb +*.sym +*.pre \ No newline at end of file diff --git a/FT60E210-PWM.C b/FT60E210-PWM.C new file mode 100644 index 0000000..ae34e36 --- /dev/null +++ b/FT60E210-PWM.C @@ -0,0 +1,187 @@ +//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 + + } + +} +//=========================================================== diff --git a/FT60E210-PWM.ini b/FT60E210-PWM.ini new file mode 100644 index 0000000..b3b82ec --- /dev/null +++ b/FT60E210-PWM.ini @@ -0,0 +1,60 @@ +[MAINFRAME] +IDEVer=3010108 +CompilerType=GCC +CheckSFUpdate=1 +LastBuildYear=2024 +LastBuildMonth=7 +LastBuildDay=23 +LastBuildHour=9 +LastBuildMin=40 +LastBuildSec=13 +[OPTIONS] +1044=1 +1046=0 +1048=1 +1050=0 +1052=1 +1054=0 +1056=2 +1058=1 +1060=0 +1062=-1 +1064=-1 +1066=-1 +1068=-1 +1070=-1 +1072=-1 +1074=-1 +1076=-1 +1078=-1 +1080=-1 +1082=-1 +1084=-1 +1086=-1 +1088=-1 +1090=-1 +1092=-1 +1095=-1 +1097=-1 +1093=0 +SoftwareConfig=0 +[PRJOPTIONS] +1038=1 +1060= +1061= +1008=1 +1009=0 +1094=0 +1098=default +HEXForm=0 +1010=0 +1099=0 +RemindFTUpdate=1 +FloatSize=0 +SourcefileType=1 +[FONTS] +200=Courier New +201=11 +202=0 +203=0 +204=0,0,0 diff --git a/FT60E210-PWM.prj b/FT60E210-PWM.prj new file mode 100644 index 0000000000000000000000000000000000000000..9ac2c75d9fb58eed0179f3c8c23697ad36900cd4 GIT binary patch literal 332 zcmZ{gPY=OB5XFCIiSOV8AUHTkoT|N5HbFS-MMP3XD=j`g-fkT#vWMCEv-94(nfJ?3 zQId1yAnUPY&(%kBWeIDhjEI>qmLFi)k}~8bTuzscD!&Xy40kf29Ye$n%Z6HUUo4O0ynP(rlZk{~}zYHN0&^-=kw)!d<0} IayM}H0n-dHiU0rr literal 0 HcmV?d00001 diff --git a/sysnop.h b/sysnop.h new file mode 100644 index 0000000..8033996 --- /dev/null +++ b/sysnop.h @@ -0,0 +1,48 @@ +#ifndef __SYS_NOP_H__ +#define __SYS_NOP_H__ + +#include "syscfg.h" + +#define NOP1() __nop() +#define NOP2() NOP1(),NOP1() +#define NOP3() NOP2(),NOP1() +#define NOP4() NOP3(),NOP1() +#define NOP5() NOP4(),NOP1() +#define NOP6() NOP5(),NOP1() +#define NOP7() NOP6(),NOP1() +#define NOP8() NOP7(),NOP1() +#define NOP9() NOP8(),NOP1() +#define NOP10() NOP9(),NOP1() +#define NOP11() NOP10(),NOP1() +#define NOP12() NOP11(),NOP1() +#define NOP13() NOP12(),NOP1() +#define NOP14() NOP13(),NOP1() +#define NOP15() NOP14(),NOP1() +#define NOP16() NOP15(),NOP1() +#define NOP17() NOP16(),NOP1() +#define NOP18() NOP17(),NOP1() +#define NOP19() NOP18(),NOP1() +#define NOP20() NOP19(),NOP1() +#define NOP21() NOP20(),NOP1() +#define NOP22() NOP21(),NOP1() +#define NOP23() NOP22(),NOP1() +#define NOP24() NOP23(),NOP1() +#define NOP25() NOP24(),NOP1() +#define NOP26() NOP25(),NOP1() +#define NOP27() NOP26(),NOP1() +#define NOP28() NOP27(),NOP1() +#define NOP29() NOP28(),NOP1() +#define NOP30() NOP29(),NOP1() +#define NOP31() NOP30(),NOP1() +#define NOP32() NOP31(),NOP1() +#define NOP33() NOP32(),NOP1() +#define NOP34() NOP33(),NOP1() +#define NOP35() NOP34(),NOP1() +#define NOP36() NOP35(),NOP1() +#define NOP37() NOP36(),NOP1() +#define NOP38() NOP37(),NOP1() +#define NOP39() NOP38(),NOP1() +#define NOP40() NOP39(),NOP1() +#define NOPN(N) NOP##N() + +#endif