使用Haawking IDE 新建一個(gè)LED閃爍的工程


HAAWKING IDE?是北京中科昊芯科技有限公司本著適合國(guó)內(nèi)DSP、RISC-V開發(fā)人員使用的初心,推出的基于Eclipse開發(fā)的RISC-V DSP集成開發(fā)環(huán)境。
????1.提升DSP指令集優(yōu)勢(shì),實(shí)現(xiàn)配套編譯環(huán)境及調(diào)試系統(tǒng)
????2.實(shí)現(xiàn)了性能領(lǐng)先的定點(diǎn)數(shù)學(xué)函數(shù)庫和電機(jī)控制算法庫
????3.集成與國(guó)外原廠芯片API接口一樣“位域”裸板驅(qū)動(dòng)程序
????4.針對(duì)性優(yōu)化Eclipse相關(guān)功能并提供完整的模板工具

一 新建工程
第一步:打開Haawking IDE,點(diǎn)擊file下面的new,選擇C/C++++ Project

第二步:選擇C 工程,點(diǎn)擊下一步

第三步:選擇工程,給工程起個(gè)名字,點(diǎn)擊下一步

第四步:選擇DSC28034芯片和工程類型,點(diǎn)擊下一步

第五步:點(diǎn)擊下一步

第六步:點(diǎn)擊完成,工程就建好了

二 編寫程序
第一步:編寫LED燈、按鍵、蜂鳴器的驅(qū)動(dòng)函數(shù)
/******************************************************************
函數(shù)名:void InitKEY(void)
參數(shù):無
返回值:無
作用:配置GPIO27為輸入模式,上拉禁止
******************************************************************/
void InitKEY(void)
{
EALLOW;
GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO27 = 0;
GpioCtrlRegs.GPAPUD.bit.GPIO27 = 1;
EDIS;
}
/******************************************************************
函數(shù)名:void InitLED(void)
參數(shù):無
返回值:無
作用:配置GPIO41、GPIO43、GPIO34為輸出模式
******************************************************************/
void InitLED(void)
{
EALLOW;
GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 0; //普通IO,對(duì)應(yīng)D400,LED燈
GpioCtrlRegs.GPBDIR.bit.GPIO41 = 1; //輸出
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; //普通IO,對(duì)應(yīng)D401,LED燈
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; //輸出
GpioCtrlRegs.GPBMUX1.bit.GPIO43 = 0; //普通IO,對(duì)應(yīng)D402,LED燈
GpioCtrlRegs.GPBDIR.bit.GPIO43 = 1; //輸出IO
GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0; //普通IO,對(duì)應(yīng)蜂鳴器
GpioCtrlRegs.GPADIR.bit.GPIO6 = 1; //輸出IO
EDIS;
}
第二步:主函數(shù)調(diào)用驅(qū)動(dòng)函數(shù)并實(shí)現(xiàn)一個(gè)LED的閃爍,按鍵按下,蜂鳴器響,LED亮,彈起蜂鳴器關(guān)閉,LED滅
int main(void)
{
//int temp, in;
//volatile unsigned int i;
//DisableDog();
EALLOW;
P_SysCtrlRegs->INTOSC1TRIM.bit.FINETRIM = 0;
P_SysCtrlRegs->INTOSC2TRIM.bit.FINETRIM = 0;
EDIS;
InitSysCtrl(); //將PLL配置成10倍頻1分頻,配置系統(tǒng)時(shí)鐘為120M
DINT;
int i = 0;
InitPieCtrl();??//初始化PIE 控制寄存器
IER_DISABLE(0xffff);
IFR_DISABLE(0xffff);
InitPieVectTable();
//PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
InitKEY();
InitLED();
GpioDataRegs.GPBSET.bit.GPIO41 = 1;
//Disable CPU interrupts and clear all CPU interrupt flags:
while(1){
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;
GpioDataRegs.GPBTOGGLE.bit.GPIO43 = 1;
for(i = 0;i<1000;i++)
{
for(j = 0;j < 1000;j++)
{}
}
if(GpioDataRegs.GPADAT.bit.GPIO27 == 0)
{
GpioDataRegs.GPBCLEAR.bit.GPIO41 = 1;
GpioDataRegs.GPASET.bit.GPIO6 = 1;
}
else
{
GpioDataRegs.GPBSET.bit.GPIO41 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO6 = 1;
}
}
return 0;
}
// ----------------------------------------------------------------------------
三?仿真編譯
第一步:給開發(fā)板供電,連接仿真器,如下圖所示

第二步:編譯調(diào)試


四 實(shí)驗(yàn)現(xiàn)象

(本文出自昊芯發(fā)燒友論壇)