xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 8KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-26
  • 語言: C/C++
  • 標(biāo)簽: DSP??spwm??C語言??

資源簡(jiǎn)介

用DSP實(shí)現(xiàn)spwm的C語言程序 簡(jiǎn)單易行

資源截圖

代碼片段和文件信息

/*
09.10.23??09.10.24?實(shí)現(xiàn)
嘗試發(fā)出PWM波形采用對(duì)稱規(guī)則采樣法。
三相發(fā)出的正弦波都很完美。唯一的問題是中斷函數(shù)執(zhí)行了160us有點(diǎn)時(shí)間太長(zhǎng)了
總共也就200us的時(shí)間。看能否想辦法再精簡(jiǎn)程序
采用匯編則可采用角度查詢法,當(dāng)然需要360°的sin值表
RC濾波器參數(shù):0.1uF、10k??????加上窄脈沖刪除??94us
*/
#include?“SEED-DEC2407.h“

void?initial();
void?bad_trap();
unsigned?long?int?gettime();
void?look_up_sin?();

/*unsigned?int?i=0j=0l=0;
unsigned?long?int?k=0t=0N=0M=9;//M值的大小和Fc有關(guān)系,?
//Ud不變,Uc隨著Fc的改變而改變,所以M=Uc/Us值改變。
unsigned?long?int?tm1=0tm2=0tm3=0;
unsigned?int?ADAcount=0ischange=0result=0F_modu=50;*/

//?一些中間的運(yùn)算變量,到時(shí)候能刪的全部刪掉
unsigned?int?Nk;??????????????//N為載波比??N=Fc/F_mode=5000/50=100
extern?unsigned?int?sintab[1801];??
unsigned?int?Temp0=0Temp1=0Temp2=0;
signed?int?Tmp0=0Tmp1=0Tmp2=0Tmp3Tmp4Tmp5;
signed?long?var1var2var3;
signed?int?sinwtcoswt;
signed?int?sinwt_csinwt_bsinwt_acoswt_a;?
??
main()
{???
N=5000/50;
????initial();?????????????????????????//系統(tǒng)初始化
??? while(1)
????{
*PEDATDIR=*PEDATDIR?&?0xFFF9; ???//輸出低電平
}
}?
void?initial(void)
{
?asm(“?setc?INTM“);????????????????//禁止所有可屏蔽中斷
?????asm(“?clrc?SXM“);?????????????????//抑制符號(hào)擴(kuò)展。SXM=1時(shí),數(shù)據(jù)通過定標(biāo)移位器
?????//傳送到累加器時(shí)將產(chǎn)生符號(hào)擴(kuò)展
?????asm(“?clrc?OVM“); ???????????//OVM清零累加器中結(jié)果正常溢出
?????asm(“?clrc?CNF“);?????????????????//CNF清零B0被設(shè)置為數(shù)據(jù)存儲(chǔ)區(qū)
?????
?*WDCR=0x68?;??????????????????????//看門狗定時(shí)控制寄存器,禁止看門狗
?????*SCSR1=0x81fe;????????????????????//系統(tǒng)控制及狀態(tài)寄存器1,CPU時(shí)鐘頻率設(shè)置
?????//設(shè)為40MHZ
?????//*SCSR2&=0x000e; ???//SARAM配置為內(nèi)部數(shù)據(jù)MEM???
?//*XINT1CR=*XINT2CR=0x8006;???????//禁止外部中斷
?????//*WSGR=0x0000;???????????????????//設(shè)置外部存儲(chǔ)器的接口不插入等待狀態(tài)
??????????
?????*IFR=0xffff;??????????????????????//清所有系統(tǒng)中斷標(biāo)志
?*IMR=0x0002;??????????????????????//開?INT2??中斷???
?*EVAIFRA=0xffff;??????????????????//清事件管理器A所有中斷標(biāo)志?
?*EVAIFRB=0xffff;??????????????????//清事件管理器A所有中斷標(biāo)志?
?*EVAIFRC=0xffff; ???????????????//清事件管理器A所有中斷標(biāo)志?
?????*EVAIMRA=0x0200; ???????????????//T1下溢中斷??使能T1PINT?
?*EVAIMRB=0; ???????????????????//屏蔽所有中斷
?*EVAIMRC=0;???????????????????????//屏蔽所有中斷
?
?/**ADCTRL1=?0x0900; ???????????//設(shè)置連續(xù)轉(zhuǎn)換模式
?*MAXCONV?=?0x0; ???????????//每次完成轉(zhuǎn)換1個(gè)通道
?*CHSELSEQ1=0x0; ???????????????//?ADCIN0
?*ADCTRL2=?0x2000;?????????????????//啟動(dòng)轉(zhuǎn)換*/?
?//IO口引腳設(shè)置
?????*MCRA=*MCRA|0x0fc0;???????????????//設(shè)置PWM1~6引腳
?????*MCRC=*MCRC?&?0xFFF9; ???//PWM7/8配置為通用輸出口,測(cè)試用
?*PEDATDIR|=0x0600;
?//PWM發(fā)生器設(shè)置(EVA)
?*ACTRA=0x0999;????????????????????//引腳PWM1、3、5低有效,PWM2、4、6高有效。
?*T1PR=4000;???????????????????????//T1周期寄存器值為4000,載波頻率為5k
?*CMPR1=4000;??????????????????????//比較器的比較值,開始時(shí)占空比初始值0%
?*CMPR2=4000;
?*CMPR3=4000;
?????*T1CNT=0;?????????????????????????//定時(shí)器1計(jì)數(shù)寄存器???
?*DBTCONA=0x08f4;??????????????????//死區(qū)周期值為8,死區(qū)預(yù)分頻系數(shù)為32,
?//死區(qū)值為7×32=224個(gè)CPU時(shí)鐘周期CPU時(shí)鐘周期為50ns,定時(shí)器周期為8×32×25ns???6.4us?
?????*COMCONA=0x8200;??????????????????//比較控制寄存器A?輸出使能,下溢重載
?????//當(dāng)計(jì)數(shù)器T1CNT=0(下溢)時(shí)重載
?*T1CON=0x0842;????????????????????//定時(shí)器1控制寄存器?F=1連續(xù)增減計(jì)數(shù)方式
?????asm(“?clrc?INTM“);????????????????//開總中斷??? ?
}
void?look_up_sin?(void)
{
? switch(Temp1)
{case?0:
??asm(“?L

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????7154??2010-03-16?21:06??spwm程序\SPWM.c

?????文件??????13569??2010-03-16?21:06??spwm程序\vectors.asm

?????目錄??????????0??2010-03-25?09:42??spwm程序

-----------?---------??----------?-----??----

????????????????20723????????????????????3


評(píng)論

共有 條評(píng)論

相關(guān)資源