版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第三章F2812的系統(tǒng)控制與中斷3.1F2812的存儲器
F2812的存儲空間:Flash128kX16bOTP存儲器只能一次編程,不能擦除表4.1flash和OTP配置寄存器寄存器受EALLOW位保護(保護寄存器) 執(zhí)行EALLOW指令后,可將數(shù)據(jù)寫入寄存器 執(zhí)行EDIS指令后,寫操作禁止3.2時鐘
3.2.1時鐘單元基本結(jié)構(gòu)
TMS320F2812處理器內(nèi)部集成了振蕩器、鎖相環(huán)、看門狗及工作模式選擇等控制電路。振蕩器、鎖相環(huán)主要為處理器CPU及相關外設提供可編程的時鐘,每個外設的時鐘都可以通過相應的寄存器進行編程設置;
看門狗可以監(jiān)控程序的運行狀態(tài),提高系統(tǒng)的可靠性。F2810和F2812內(nèi)部的各種時鐘和復位電路3.2.2鎖相環(huán)電路
鎖相環(huán)是一種控制晶振使其相對于參考信號保持恒定相位的電路,在數(shù)字通信系統(tǒng)中使用比較廣泛。目前微處理器或DSP集成的片上鎖相環(huán),主要作用則是通過軟件實時地配置片上外設時鐘,提高系統(tǒng)的靈活性和可靠性。此外,由于采用軟件可編程鎖相環(huán),所設計的系統(tǒng)處理器外部允許較低的工作頻率,而片內(nèi)經(jīng)過鎖相環(huán)微處理器提供較高的系統(tǒng)時鐘。
好處:可以有效地降低系統(tǒng)對外部時鐘的依賴和電磁干擾,提高系統(tǒng)啟動和運行的可靠性,降低系統(tǒng)對硬件的設計要求
。3.2.2鎖相環(huán)電路
TMS320F2812處理器的片上晶振和鎖相環(huán)模塊為內(nèi)核及外設提供時鐘信號,并且控制器件的低功耗工作模式。片上晶振模塊允許使用2種方式為器件提供時鐘,即采用內(nèi)部振蕩器或外部時鐘源。
(1)使用內(nèi)部振蕩器,在Xl/XCLKIN和X2這兩個引腳之間連接一個石英晶體,一般選用30MHz。
(2)采用外部時鐘,將輸入的時鐘信號直接接到Xl/XCLKIN引腳上,而X2懸空,不使用內(nèi)部振蕩器。旁路鎖存器片上振蕩器晶體振蕩器及鎖相環(huán)模塊鎖相環(huán)配置模式PLL模式說明SYSCLKOUTPLL禁止上電復位時通過將引腳拉低來調(diào)用。PLL模塊完全禁止。輸入到CPU的時鐘(CLKIN)由來自X1/XCLKIN引腳的時鐘信號直接驅(qū)動。XCLKINPLL旁路如果PLL未處于禁止狀態(tài),則為上電復位的默認配置模式。PLL自身被旁路,但是從X1/XCLKIN引腳輸入的時鐘在送到CPU之前,先經(jīng)過PLL的‘/2’電路除以2。XCLKIN/2PLL使能通過給PLLCR寄存器寫入一個非0的‘n’值來實現(xiàn)。時鐘在送到CPU之前,先經(jīng)過PLL的‘/2’電路除以2。(XCLKIN*n)/2處理器內(nèi)部時鐘電路鎖相環(huán)模塊除了為C28x內(nèi)核提供時鐘外,還通過系統(tǒng)時鐘輸出提供快速和慢速2種外設時鐘,而系統(tǒng)時鐘主要通過外部引腳XPLLDIS及鎖相環(huán)控制寄存器進行控制。如果XPLLDIS為高電平,使能芯片內(nèi)部鎖相環(huán)電路,則可以通過控制寄存器PLLCR軟件設置系統(tǒng)的工作頻率。注意:1.在通過軟件改變系統(tǒng)的工作頻率時,必須等待系統(tǒng)時鐘穩(wěn)定后才可以繼續(xù)完成其他操作。
2.可以通過外設時鐘控制寄存器使能外設時鐘。在具體的應用中。為降低系統(tǒng)功耗,不使用的外設最好將其時鐘禁止。外設時鐘包括快速外設和慢速外設兩種,分別通過HISPCP和LOSPCP寄存器進行設置。
CLKIN(經(jīng)過PLL后送往CPU的時鐘信號)經(jīng)過CPU分發(fā),作為SYSCLKOUT送至各個外設。DSP將外設分成兩種:低速外設:SCI,SPI,McBSP
高速外設:EV,ADC兩種外設時鐘一起提供。給各個外設提供時鐘前,使能用到的外設的時鐘。不用的外設時鐘不使能。PCLKCR寄存器使能相應的外設時鐘SysctrlRegs.PCLKCR.bit.SCIAENCLK=1;//使能SCIA時鐘
二其他外設時鐘
系統(tǒng)時鐘SYSCLKOUT經(jīng)過低速預定標寄存器LOSPCP,產(chǎn)生低速外設時鐘LSPCLK提供給低速外設。系統(tǒng)時鐘SYSCLKOUT經(jīng)過高速預定標寄存器HISPCP,產(chǎn)生高速外設時鐘HSPCLK提供給高速外設。LOSPCP寄存器HISPCP寄存器
二其他外設時鐘//為降低系統(tǒng)功耗,不使用的外設時鐘需要屏蔽。但如果使用外設必須首先使能相應的外設時鐘voidInitsysctrl(){ uint16i; EALLOW; SysctrlRegs.WDCR=0x0068;//關看門狗
SysctrlRegs.PLLCR=0x0008;//初始化鎖相環(huán),系統(tǒng) 時鐘30MX4=120M
for(i=0;i<5000;i++){}
//HISPCP/LOSPCP預定標寄存器設置 SysCtrlRegs.HISPCP.a11=0x0001; //HSPCLK=SYSCLKOUT/2; SysCtrlRegs.LOSPCP.a11=0x0002; //LSPCLK=SYSCLKOUT/4; //使能使用的外設時鐘
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; SysCtrlRegs.PCLKCR.bit.SCIBENCLK=1; EDIS;}3.2.3時鐘單元寄存器寄存器名地址長度(×16位)描述保留
0x7010~0x701910HISPCP
0x701A1HSPCLK時鐘的高速外設模塊時鐘預分頻寄存器LOSPCP0x701B1LSPCLK時鐘的低速外設模塊時鐘預分頻寄存器PCLKCR0x701C1外設模塊時鐘控制寄存器保留0x701D1LPMCR00x701E1低功耗工作模式控制寄存器0LPMCR10x701F1低功耗工作模式控制寄存器1保留0x70201PLLCR0x70211PLL控制寄存器?SCSR0x70221系統(tǒng)控制&狀態(tài)寄存器WDCNTR0x70231程序監(jiān)視器計數(shù)寄存器保留0x70241WDKEY0x70251程序監(jiān)視器復位密鑰寄存器保留0x7026~0x70283WDCR0x70291程序監(jiān)視器控制寄存器保留0x702A~0x702F6注意表中所有寄存器只有在執(zhí)行EALLOW指令后,才可以訪問。PLL控制寄存器(PLLCR)只能被XRS信號復位到已知狀態(tài)。15141312111098ReservedECANENCLKReservedMCBSPENCLKSCIBENCLKSCIAENCLKReservedSPIENCLKR-0R/W-0R-0R/W-0R/W-0R/W-0R-0R/W-0743210ReservedADCENCLKReservedEVBENCLKEVAENCLKR-0R/w-0R-0R/W-0R/W-01.外設時鐘控制寄存器(PCLKCR)位15 Reserved保留位 位14 ECANENCLK如置1,將使能CAN外設模塊的時鐘。要進入低功耗工作模式,用戶可以將該位清零或復位為0。位13 Reserved保留位 位12 MCBSPENCLK 如置1,使能McBSP外設模塊的低速時鐘(LSPCLK),要讓器件進入低功耗工作模式,用戶可以將該位清零或復位。位11 SCIBENCLK 如置1,使能SCI-B外設模塊的低速時鐘(LSPCLK),要讓器件進入低功耗工作模式,用戶可以將該位清零或復位。位10 SCIAENCLK如置1,使能SCI-A外設模塊的低速時鐘(LSPCLK),要讓器件進入低功耗工作模式,用戶可以將該位清零或復位。位9 Reserved保留位位8 SPIAENCLK如置1,使能串行外設接口的低速時鐘(LSPCLK),要讓器件進入低功耗工作模式,用戶可以將該位清零或復位。位7~4Reserved保留位位3 ADCENCLK如置1,使能模數(shù)轉(zhuǎn)換外設模塊的高速時(HSPCLK),要讓器件進入低功耗工作模式,用戶可以將該位清零或復位。位2 Reserved保留位 位1 EVBENCLK如置1,使能事件管理EVB外設模塊的高速時鐘(HSPCLK),要讓器件進入低功耗工作模式,用戶可以將該位清零或復位。位0 EVAENCLK如置1,使能事件管理EVA外設模塊的高速時鐘(HSPCLK),要讓器件進入低功耗工作模式,用戶可以將該位清零或復位。153210ReservedHSPCLKR-0R/W-001位15~3 Reserved保留位2.高速外設時鐘寄存器(HISPCP)位2~0 HSPCLK配置與SYSCLKOUT相關的高速外設模塊時鐘(HSPCLK)頻率。000 高速時鐘=SYSCLKOUT/1001 高速時鐘=SYSCLKOUT/2(復位值)010 高速時鐘=SYSCLKOUT/4011 高速時鐘=SYSCLKOUT/6100 高速時鐘=SYSCLKOUT/8101 高速時鐘=SYSCLKOUT/10110 高速時鐘=SYSCLKOUT/12111 高速時鐘=SYSCLKOUT/14153210ReservedLSPCLKR-0R/W-010位15~3 Reserved保留位2.低速時鐘寄存器(LOSPCP)位2~0 LSPCLK配置與SYSCLKOUT相關的低速外設模塊時鐘(LSPCLK)頻率。000 低速時鐘=SYSCLKOUT/1001 低速時鐘=SYSCLKOUT/2010 低速時鐘=SYSCLKOUT/4(復位值)011 低速時鐘=SYSCLKOUT/6100 低速時鐘=SYSCLKOUT/8101 低速時鐘=SYSCLKOUT/10110 低速時鐘=SYSCLKOUT/12111 低速時鐘=SYSCLKOUT/1415
43
0ReservedDIVR-0R/W-0位15~4 Reserved保留位3.鎖相環(huán)控制寄存器(PLLCR)位3~0 DIV DIV位域控制是否旁路PLL,不旁路時,用于設置PLL時鐘比率。0000 CLKIN=OSCCLK/2(PLL旁路)0001 CLKIN=(OSCCLK*1.0)/20010 CLKIN=(OSCCLK*2.0)/20011 CLKIN=(OSCCLK*3.0)/20100 CLKIN=(OSCCLK*4.0)/20101 CLKIN=(OSCCLK*5.0)/20110 CLKIN=(OSCCLK*6.0)/20111 CLKIN=(OSCCLK*7.0)/21000 CLKIN=(OSCCLK*8.0)/21001 CLKIN=(OSCCLK*9.0)/21010 CLKIN=(OSCCLK*10.0)/21011~1111 保留問題如果要使系統(tǒng)時鐘為輸入時鐘的5倍頻,同時使能所有的外設時鐘,將高速外設的時鐘設置為系統(tǒng)時鐘的1/8,低速外設的時鐘設置為系統(tǒng)時鐘的1/10,應該如何設置相關的寄存器?
PLLCR=0x000A;PCLKCR=0xFFFF;HISPCP=0x0004;LOSPCP=0x0005;3.3看門狗看門狗主要用來檢測軟件和硬件的運行狀態(tài),當內(nèi)部計數(shù)器溢出時,將產(chǎn)生一個復位信號。為了避免產(chǎn)生不必要的復位,要求用戶定期對看門狗定時器進行復位。如果不明的原因使CPU中斷程序,看門狗將產(chǎn)生一個復位信號,使CPU復位,程序從系統(tǒng)軟件的開始執(zhí)行。
看門狗有效地提高了系統(tǒng)的可靠性。程序監(jiān)視器
計數(shù)寄存器晶體振蕩器時鐘寬度程序監(jiān)視器
復位密鑰寄存器程序監(jiān)視器
控制寄存器程序監(jiān)視器復位信號系統(tǒng)控制和狀態(tài)寄存器程序監(jiān)視器中斷信號013.3.1看門狗的基本結(jié)構(gòu)或門3.3.2看門狗基本操作在看門狗8位加法計數(shù)器(WDCNTR)在WDCLK的時鐘下進行加1計數(shù),計數(shù)達最大值時產(chǎn)生一個寬度512*OSCCLK的脈沖,使DSP復位。為了防止DSP復位1.禁止看門狗看門狗控制寄存器(WDCR)6位(WDDIS):看門狗使能位,寫1無效,寫0使能。5~3位(WDCHR):邏輯校驗位,必須寫1012~0位(WDPS):預定標設置位。設置WDCLK時鐘。3.3.2看門狗基本操作
邏輯校驗位(WDCHK):所有訪問看門狗控制寄存器(WDCR)的寫操作中,相應的校驗位(位5~3)必須是“101",否則將會拒絕訪問并會立即觸發(fā)復位。
設置WDCLK時鐘:由WDCR寄存器的WDPS(2~0位)設置??撮T狗的預定標寄存器可以用來提高看門狗的計數(shù)溢出周期。2.周期性喂狗在WDCNTR溢出之前,通過軟件向WDKEY寫0x55+0xAA時,清除WDCNTR的值,使WDCNTR復位。寫他任何值都會使系統(tǒng)復位。3.3.3看門狗寄存器1.看門狗控制寄存器WDCR看門狗控制寄存器的各位分配看門狗控制寄存器功能定義2.系統(tǒng)控制和狀態(tài)寄存器SCSR系統(tǒng)控制和狀態(tài)寄存器各位分配系統(tǒng)控制和狀態(tài)寄存器功能定義15870ReservedWDCNTRR-0R/W-0位15~8 Reserved保留位3.看門狗計數(shù)寄存器WDCNTR位7~0 WDCNTR 程序監(jiān)視器計數(shù)器的當前值。8位計數(shù)器不斷地以WDCLK頻率增加。如果計數(shù)器上溢,則程序監(jiān)視器發(fā)出復位信號。如果寫入了一個有效數(shù)據(jù)序列到WDKEY寄存器,則計數(shù)器復位到0。WDCLK頻率由WDCR寄存器配置。15870ReservedWDKEYR-0R/W-0位15~8Reserved保留位4.看門狗復位寄存器WDKEY位7~0WDKEY寫入0x55后再寫入0xAA將清零WDCNTR。寫任何其它值都會立即使程序監(jiān)視器發(fā)出復位信號。讀取操作時返回WDCR寄存器值。3.3.4看門狗應用
F2812上電后看門狗總是處于使能狀態(tài),如果不周期地控制看門狗就會觸發(fā)復位。因此,對于看門狗最簡單的處理方法就是通過禁止位(WDDIS)禁止看門狗操作。但看門狗是系統(tǒng)穩(wěn)定運行的一個保障,因此這種方法并不可取。在實際項目開發(fā)過程中,一旦系統(tǒng)調(diào)試完畢獨立運行就加入看門狗這個安全機制,從而保證系統(tǒng)的正常運行。
//一一一一一一一一一一一一一一一一一一一一一一//看門狗應用實例:Example28xWatchdog.c//一一一一一一一一一一一一一一一一一一一一一一//看門狗直接連接到PIE模塊的WAKEINT中斷,允許將CPU從掉電模式喚醒//程序代碼放在一個無限循環(huán)中,用戶可以選擇使用KickDog函數(shù)操作看門狗key寄存器//如果使用KickDog函數(shù)操作看門狗key寄存器,將不會產(chǎn)生WAKEINT中斷//如果不對key寄存器操作,將會產(chǎn)生WAKEINT中斷//觀察變量//LoopCount—無限循環(huán)次數(shù)計數(shù)//WakeCount—產(chǎn)生WAKEINT的中斷次序//Step0、包含需要的頭文件//DSP28_Device.h;采用#include包含器件使用的頭文件//DSP28_Example.h;本例程需要的特定的頭文件#include"DSP28_Device.h"http://函數(shù)原型聲明interruptvoidwakeint_isr(void);//全局變量聲明Uint32WakeCount;Uint32LoopCount;
voidmain(void){//Step1、初始化系統(tǒng)控制寄存器、PLL、看門狗、時鐘位默認狀態(tài)//該函數(shù)在后面的DSP28_SysCtrl.c文件中查找InitSysCtrl();//Step2、GPI0初始化//InitGpio();//Step3、初始化中斷向量表(PIE向量表)//相應中斷相量表請在下面的DSP28_DefaultIsr.c文件中查找//禁止和清除所有CPU中斷DINT;IER=0x0000;IFR=0x0000;//初始化PIE控制寄存器,參考DSP28_PieCtrl.c文件InitPieVectTable();//Step4、初始化外設//InitPeripherals();//Step5、用戶特定函數(shù),重新分配向量(可選擇),使能中斷//重新為WAKEINT分配PIE向量,并指向相應的中斷服務程序EALLOW;PieVectTable.WAKEINT=&wakeint_isr;EDIS;//使能WAKEINT的中斷工INT1IER|=M_NT1;//使能WAKEINT:位于PIE的組1的第8中斷PieCtrlRegs.PIEIER1.bit.INTxB=1;//對整個程序狀態(tài)寄存器進行操作,避免清除WDOVERRIDE標識位EALLOW;SysCtrlRegs.SCSR.a11=BIT1;//#defineBIT10x0002EDIS;//計數(shù)器清零WakeCount=0;//中斷計數(shù)LoopCount=0;//循環(huán)計數(shù)//使能全局中斷,并配置位real一timedebug模式EINT;//使能全局中斷INTMERTM;//使能全局realtime中斷DBGM//Step6、主循環(huán)for(;;){LoopCount++;//使用KickDog操作看門狗Key寄存器,避免產(chǎn)生WAKEINT中斷//通常情況下為了保證程序正常運行,需要在主程序循環(huán)或定時中斷服務程序中對Key進行操作//KickDog();}}//Step7、中斷服務程序interruptvoidwakeint_isr(void){WakeCount++;//響應中斷
PieCtrlRegs.PIEACK.a11=PIEACK_GROUP1;}//系統(tǒng)初始化voidInitSysCtrl(void){{Uint16i;EALLOW;//禁止看門狗模塊
//SysCtrlRegs.WDCR=0x0068;//本例中不使用
//初始化鎖相環(huán)
SysCtrlRegs.PLLCR=0xA;//等待鎖相環(huán)穩(wěn)定
for(i=0;i<5000;i++){}//HISPCP/LOSPCP預定標寄存器設置
SysCtrlRegs.HISPCP.a11=0x0001;SysCtrlRegs.LOSPCP.a11=0x0002;//使能選擇的外設時鐘
//對于不用的時鐘,一般情況下為了降低功耗,提高系統(tǒng)的穩(wěn)定性,須禁止相應的中斷
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1;//SysCtrlRegs.PCLKCR.bit.SCIENCLKH=1;EDIS;}//一一一一一一一一一一一一一一一一一一一//KickDog;//一一一一一一一一一一一一一一一一一一一//該函數(shù)復位看門狗定時器voidKickDog(void){EALLOW;SysCtrlRegs.WDKEY=0x0055;SysCtrlRegs.WDKEY=Ox00AA;EDIS;}3.4CPU定時器3.4.1定時器基本操作F2810和F2812器件上有3個32位的CPU定時器:
TIMER0;
TIMER1;
TIMER2。定時器1定時器2CPU定時器0用戶可以使用。用于實時操作系統(tǒng)(RTOS)注:CPU定時器與事件管理模塊(EVA,EVB)中的通用(GP)定時器是不同的。或或與或CPU定時器功能框圖工作過程:計算定時時間,給周期寄存器PRDH:PRD賦值。啟動定時器時,PRDH:PRD的值裝載進計數(shù)寄存器TIMH:TIM,每TIMCLK計數(shù)寄存器減1,直至計數(shù)為0,產(chǎn)生中斷信號。一個周期后,PRDH:PRD的值重新裝入TIMH:TIM進行減1計數(shù)。定時時間:(PRDH:PRD+1)*TIMCLK若處理器采用30MHz的外部時鐘,經(jīng)過鎖相環(huán)10/2倍頻后,系統(tǒng)的時鐘工作在150MHz。定時器選擇SYSCLKOUT作為定時器時鐘,工作頻率也是150MHz。一旦定時器被使能(TCR-Bit4=0)先給分頻器TDDRH:TDDR賦值,后裝載進預定標器PSCH:PSC,每SYSCLKOUT脈沖,PSCH:PSC的值減1,直至計數(shù)為0,輸出一個TIMCLK。下一個時鐘周期開始前TDDRH:TDDR重新載入PSCH:PSC。
TIMCLK=(TDDRH:TDDR+1)*SYSCLKOUT計算一下:假設系統(tǒng)時鐘SYSCLKOUT為x(MHZ)TIMH:TIM計數(shù)器每減1,時間:TIMCLK=(TDDRH:TDDR+1)/xCpu定時器定時時間:T=(TDDRH:TDDR+1)*(PRDH:PRD+1)/x定時時間到,定時器向cpu發(fā)送中斷請求。定時器中斷結(jié)構(gòu)寄存器地址長度(×16位)描述TIMER0TIM0x0C001CPU定時器0,計數(shù)寄存器TIMER0TIMH0x0C011CPU定時器0,計數(shù)寄存器高位字TIMER0PRD0x0C021CPU定時器0,周期寄存器TIMER0PRDH0x0C031CPU定時器0,周期寄存器高位字TIMER0TCR0x0C041CPU定時器0,控制寄存器保留0x0C051TIMER0TPR0x0C061CPU定時器0,前定標寄存器TIMER0TPRH0x0C071CPU定時器0,前定標寄存器高位字TIMER1TIM0x0C081CPU定時器1,計數(shù)寄存器TIMER1TIMH0x0C091CPU定時器1,計數(shù)寄存器高位字TIMER1PRD0x0C0A1CPU定時器1,周期寄存器3.4.2定時器寄存器定時器配置和控制寄存器
寄存器地址長度(×16位)描述TIMER1PRDH0x0C0B1CPU定時器1,周期寄存器高位字TIMER1TCR0x0C0C1CPU定時器1,控制寄存器保留0x0C0D1TIMER1TPR0x0C0E1CPU定時器1,前定標寄存器TIMER1TPRH0x0C0F1CPU定時器1,前定標寄存器高位字TIMER2TIM0x0C101CPU定時器2,計數(shù)寄存器TIMER2TIMH0x0C111CPU定時器2,計數(shù)寄存器高位字TIMER2PRD0x0C121CPU定時器2,周期寄存器TIMER2PRDH0x0C131CPU定時器2,周期寄存器高位字TIMER2TCR0x0C141CPU定時器2,控制寄存器保留0x0C151TIMER2TPR0x0C161CPU定時器2,前定標寄存器TIMER2TPRH0x0C171CPU定時器2,前定標寄存器高位字保留0x0C18~0x0C3F40TIMERxTCR寄存器(x=0,1,2)15141312111098TIFTIEReservedFREESOFTReservedR/W-0R/W-0R-0R/W-0R/W-0R-0765430ReservedTRBTSSReservedR-0R/W-0R/W-0R-0位13~12 Reserved保留位位9~6 Reserved保留位位3~0 Reserved保留位位15 TIF CPU定時器中斷標志位。當定時器減到0時,置位該標志。該位可以通過程序?qū)懭?清零,但是它只能由定時器計數(shù)到0時置位。向該位寫入0無效。位14 TIE CPU定時器中斷使能位。如果定時器減到0,并且該位置1,則定時器將產(chǎn)生中斷請求。如果FREE位為1,則在軟件斷點時,定時器繼續(xù)運行(也就是自由運行)。在此情況下,不管SOFT的狀態(tài)。如果FREE為0,則SOFT將起作用。如果SOFT=0,則定時器停止下一次TIMH:TIM減計數(shù)。如果SOFT=1,則當TIMH:TIM減計數(shù)到0時,定時器停止。位11FREE位10SOFT這兩位是專門的仿真位,決定了在高級語言仿真中遇到斷點時定時器的狀態(tài)。CPU定時器仿真模式位。FREE SOFT 定時器仿真模式0 0 在TIMH:TIM的下一次減 計數(shù)后停止(硬件停止)0 1 在TIMH:TIM減計數(shù)到0后 停止(軟件停止)1 0 自由運行1 1 自由運行注:在前面的軟件停止模式中,定時器在關閉之前會產(chǎn)生一個中斷(因為到達0滿足中斷的產(chǎn)生條件)。位5 TRB CPU定時器重裝載位。向TRB位寫入1時,TIMH:TIM將重新裝載PRDH:PRD中的值,前定標分頻計數(shù)器(PSCH:PSC)重新裝載定時器分頻值寄存器(TDDRH:TDDR)中的值。讀TRB位時,值為0。位4 TSS CPU定時器停止狀態(tài)位。TSS為停止或起動定時器的一個標志位。 向TSS寫入1,將會停止定時器; 寫入0將會起動或重新開始定時器。 復位時,TSS清零,定時器立即起動。定時器預定標寄存器TIMERxTPR(x=0,1,2)15870PSCTDDRR-0R/W-0位15~8 PSC CPU定時器前定標分頻計數(shù)器。保存定時器的當前前分頻計數(shù)值。對于每一個定時器時鐘源周期,PSCH:PSC值大于0,PSCH:PSC減1計數(shù)。在PSCH:PSC到0之后的一個定時器時鐘周期(定時器預分頻器的輸出),PSCH:PSC重新裝載TDDRH:TDDR的值,而定時器計數(shù)器(TIMH:TIM)減1。當軟件置定時器重裝載位(TRB)為1時,也會重裝載PSCH:PSC。PSCH:PSC可以通過讀該寄存器來檢查,但是它不能直接被設置。它必須從定時器分頻值寄存器(TDDRH:TDDR)中取值。復位時,PSCH:PSC為0。位7~0 TDDR CPU定時器分頻位域。每(TDDRH:TDDR+1)個定時器時鐘源周期,定時器計數(shù)寄存器(TIMH:TIM)減1。復位時,TDDRH:TDDR位為0。為了以整數(shù)因子增加所有計數(shù)器計數(shù),寫該因子減1的數(shù)到TDDRH:TDDR位。當前分頻計數(shù)器(PSCH:PSC)值為0時,一個定時器時鐘周期后,TDDRH:TDDR重新裝載PSCH:PSC的值,TIMH:TIM減1。當軟件置定時器重裝載位(TRB)為1時,TDDRH:TDDR也重新裝載到PSCH:PSC。15870PSCHTDDRHR-0R/W-0定時器預定標寄存器TIMERxTPRH(x=0,1,2)TIMERxTIM寄存器(x=0,1,2)150TIMR/W-0位15~0 TIMCPU定時器計數(shù)寄存器(TIMH:TIM)。TIM寄存器:保存定時器的當前32位計數(shù)值的低16位。TIMH寄存器保存定時器的當前32位計數(shù)值的高16位。TIMH:TIM每(TDDRH:TDDR+1)個時鐘減1。TDDRH:TDDR為定時器前定標分頻值。當TIMH:TIM減到0時,TIMH:TIM寄存器重新裝載PRDH:PRD寄存器保存的周期值,并產(chǎn)生定時器中斷信號()。150TIMHR/W-0位15~0 TIMHTIMERxTIMH寄存器(x=0,1,2)150PRDR/W-0位15~0 PRD定時器周期寄存器(PRDH:PRD)。TIMERxPRD寄存器(x=0,1,2)
PRD寄存器:保存32位周期值的低16位。PRDH寄存器保持32位周期值的高16位。當TIMH:TIM減到0時,在下一個定時器輸入時鐘(預分頻器的輸出)開始時,TIMH:TIM寄存器重新裝載PRDH:PRD寄存器中的周期值。當定時器控制寄存器(TCR)中的定時器重裝載位(TRB)置位時,PRDH:PRD的值也將裝載到TIMH:TIM。150PRDHR/W-0位15~0 PRDHTIMERxPRDH寄存器(x=0,1,2)
3.4.5定時器中斷應用舉例定時器中斷的例程文件結(jié)構(gòu)如圖所示。========//文件名稱:Example_281xCpuTimer.c//功能描述:采用CPUTimer0定時,在定時器中斷服務程序中//記錄中斷的次數(shù)//觀察的變量:CpuTimer0.InterruptCount#include"DSP281xDevice.h"http://DSP281xHeaderfileIncludeFile#include"DSP281x_Examples.h"http://DSP281xExamplesIncludeFile//函數(shù)聲明interruptvoidcpu_timer0_isr(void);voidmain(void){//Step1、初始化系統(tǒng)控制寄存器、PLL、看門狗、時鐘位默認狀態(tài)//該函數(shù)在后面的DSP28_SysCtrl.c文件中查找
InitSysCtrl();//Step2,GPIO初始化(本例中不使用)//InitGpio();//Step3、清除所有中斷并初始化PIE中斷向量表,禁止所有CPU中斷
DINT;//初始化PIE控制寄存器為其默認狀態(tài)(所有PIE中斷被禁止并且標志被清除)InitPieCtrl();//禁止所有CPU中斷并清除所有中斷標志
IER=0x0000;IFR=0x0000;//初始化PIE控制寄存器,參考DSP28_PieCtrl.c文件
InitPieVectTable();//將本例程所使用的中斷向量重新映射,使其指向中斷服務相應的程序
EALLOW;PieVectTable.TINT0=&cpu_timer0_isr;EDIS;//Step4、初始化所有外設(本例中不需要)//InitPeripherals();InitCpuTimers();//在本例程中僅初始化Cpu定時器//配置CPU–Timer0每間隔1s產(chǎn)生1次中斷//150MHzCPU頻率,周期為1s(采用us的形式描述)ConfigCpuTimer(&CpuTimer0,100,1500000);StartCpuTimer0();//Step5、用戶特定代碼,使能中斷//使能連接到CPU–Timer0的CPUINT1IER|=M_INT1;//使能位于PIE中的組1的第7個中斷TINT0PieCtrlRegs.PIEIER1.bit.INTx7=1;//使能全局中斷,并配置為real-timedebug模式
EINT;//使能全局中斷INTMERTM;//使能全局實時中斷DBGM//Step6、IDLEloop等待產(chǎn)生中斷
for(;;);}interruptvoidcpu_timer0_isr(void){CpuTimer0.InterruptCount++;//響應中斷并準備接收更多的中斷
PieCtrlRegs.PIEACK.a11=PIEACKGROUP1;}========//文件名稱:DSP281x_CpuTimers.c//功能描述:DSP281xCPU32位定時器初始化及相關函數(shù)//#include"DSP281x_Device.h"http://包含的DSP281x頭文件#include"DSP281x_Examples.h"http://DSP281xExamples頭文件structCPUTIMER_VARSCpuTimer0;//CpuTimer1的CpuTimer2保留,由DSPBIOS及其他RTOS使用//structCPUTIMER_VARSCpuTimer1;//structCPUTIMER_VARSCpuTimer2;//初始化CPU定時器//該函數(shù)將3個定時器初始化為一個確定的狀態(tài)voidInitCpuTimers(void){//CPUTimer0//初始化各自定時器的寄存器指向相應的地址
CpuTimer0.RegsAddr=&CpuTimer0Regs;//初始化定時器周期為最大值
CpuTimer0Regs.PRD.all=0xFFFFFFFF;//初始化預定標計數(shù)器,分頻系數(shù)為1(時鐘:SYSCLKOUT)CpuTimer0Regs.TPR.all=0;CpuTimer0Regs.TPRH.all=0;//確認定時器處于停止計數(shù)狀態(tài)
CpuTimer0Regs.TCR.bit.TSS=1;//使用周期寄存器的值裝載定時器計數(shù)寄存器
CpuTimer0Regs.TCR.bit.TRB=1;//復位中斷計數(shù)標量InterruptCount=0CpuTimer0.InterruptCount=0;//CpuTimer1的CpuTimer2為DSPBIOS及其他RTOS保留//因此相應的定時器初始化代碼被注釋//初始化各自定時器的寄存器指向相應的地址//CpuTimer1.RegsAddr=&CpuTimer1Regs;//CpuTimer2.RegsAddr=&CpuTimer2Regs;//初始化定時器周期為最大值//CpuTimer1Regs.PRD.all=0xFFFFFFFF;//CpuTimer2Regs.PRD.all=0xFFFFFFFF;//確認定時器處于停止計數(shù)狀態(tài)//CpuTimer1Regs.TCR.bit.TSS=1;//CpuTimer2Regs.TCR.bit.TSS=1;//使用周期寄存器的值裝載定時器計數(shù)寄存器//CpuTimer1Regs.TCR.bit.TRB=1;//CpuTimer2Regs.TCR.bit.TRB=1;//復位中斷計數(shù)標量//CpuTimer1.InterruptCount=0;//CpuTimer2.InterruptCount=0;}//配置CPU定時器函數(shù)//該函數(shù)初始化指定定時器的周期和頻率voidConfigCpuTimer(structCPUTIMFR_VARS*Timer,floatFreq,floatPeriod){Uint32temp;//初始化周期
Timer->CPUFreqInMHz=Freq;Timer->PeriodInUSec=Period;temp=(long)(Freq*Period);Timer->RegsAddr->PRD.all=temp;//設置預定標參數(shù)(SYSCLKOUT):Timer->RegsAddr->TPR.all=0;Timer->RegsAddr->TPRH.all=0;//初始化定時器控制寄存器Timer->RegsAddr->TCR.bit.TSS=1;//1=Stoptimer,0=Start/RestartTimerTimer->RegsAddr->TCR.bit.TRB=1;//1=reloadtimerTimer->RegsAddr->TCR.bit.SOFT=1;Timer->RegsAddr->TCR.bit.FREE=1;//TimerFreeRunTimer->RegsAddr->TCR.bit.TIE=1;//0=Disable/1=EnableTimerInterrupt//復位中斷計數(shù)Timer->InterruptCount=0;}3.5通用I/O3.5.1功能概述
F28x系列有56個獨立可編程復用的通用I/O(GPIO)引腳。其中絕大部分是通用I/O和專用功能復用引腳。通常情況下,TMS320F2812的大多數(shù)I/O引腳都用作專用功能引腳。F28x模塊圖通用I/O或?qū)S霉δ軘?shù)字量I/O端口模塊采用了一種靈活的配置方法控制復用引腳的功能:
GPIOMux功能選擇寄存器用來選擇F281x和C281x器件的引腳操作模式,可以通過該寄存器獨立設置每個引腳的功能(數(shù)字量I/O或外設專用I/O)。如果選擇數(shù)字量I/O模式,可以通過GPxDIR方向控制寄存器配置數(shù)字量I/O的方向,并通過輸入限定控制寄存器GPxQUAL進一步消除數(shù)字量I/O引腳的噪聲信號。此外,處理器提供GPxSET和GPxCLEAR寄存器對數(shù)字量進行置位或清零,還可以通過GPxDAT寄存器獨立讀/寫I/O信號。3.5.2端口配置
TMS320F2812DSP對所有數(shù)字量I/O進行分組,每組作為一個端口,分別是GPIO—A、B、D、E、F和G。A、B組各16個,D組4個,E組3個,F(xiàn)組15個,G組2個。
C28x的絕大多數(shù)引腳內(nèi)部都連接多個功能單元,但并不是所有功能單元都能同時工作。也就是說,一個物理引腳可以有多種不同的功能。可以通過軟件進行功能設置,但在某一時刻只能用作一種功能。TMS320F2812復用引腳功能對照
TMS320F2812復用引腳功能對照
GPIO控制寄存器
所有GPIO端口由各自的GPxMUX復用寄存器控制,控制位設置為0時,相應引腳作為通用數(shù)字量I/O使用;設置為1時,相應引腳作為專用引腳使用。
EALLOW;GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=1;//將PWM1引腳設置為PWM波的輸出引腳GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=0;//將PWM1引腳設置為通用數(shù)字I/O口EDIS;
當設置為數(shù)字量I/O功能時,寄存器GPxDIR確定I/O端口的方向:控制位清零引腳配置為數(shù)字量輸入;置1配置為數(shù)字量輸出。
GpioMuxRegs.GPADIR.bit.GPIOA0=0;//輸入引腳端口A、B、D、E作為數(shù)字量輸入端口時具有輸入量化功能,使用該功能時,輸入脈沖必須達到一定的時鐘周期長度才被認為是有效的輸入信號,否則將被忽略。用戶可以定義量化時間長度以消除不必要的干擾信號。GPxQUAL:輸入限定控制寄存器15~8:系統(tǒng)保留7~0:QUALPRD,指定受限制的輸入周期采樣
0x00無限制,與SYSCLKOUT同步
0x01QUALPRD=2個SYSCLKOUT周期
0x02QUALPRD=4個SYSCLKOUT周期 … 0xffQUALPRD=2*255個SYSCLKOUT周期復用功能引腳圖
處理器中GPIO內(nèi)部結(jié)構(gòu)圖1:指MGPxUX的值為1,0:指GPxMUX的值為0。3.5.3數(shù)字量I/O寄存器及其應用
F2812處理器的所有外設寄存器全部分組為外設幀PF0、PF1和PF2,這些幀都映射到處理器的數(shù)據(jù)區(qū)。
外設幀PF0包括控制訪問內(nèi)部Flash和SARAM速度的控制寄存器;
外設幀PF1包括絕大部分外設控制寄存器;
外設幀PF2主要用于CAN模塊的控制寄存器。外設幀存儲空間映射關系數(shù)字量控制寄存器1I/O復用寄存器及其應用GPIO復用控制寄存器名稱地址空間大小(×16)寄存器功能描述GPAMUX0x70C01GPIOA復用控制寄存器GPADIR0x70C11GPIOA方向控制寄存器GPAQUAL0x70C21GPIOA輸入量化控制寄存器保留0x70C31GPBMUX0x70C41GPIOB復用控制寄存器GPBDIR0x70C51GPIOB方向控制寄存器GPBQUAL0x70C61GPIOB輸入量化控制寄存器保留0x70C7~0x70CB5名稱地址空間大?。ā?6)寄存器功能描述GPDMUX0x70CC1GPIOD復用控制寄存器GPDDIR0x70CD1GPIOD方向控制寄存器GPDQUAL0x70CE1GPIOD輸入量化控制寄存器保留0x70CF1GPEMUX0x70D01GPIOE復用控制寄存器GPEDIR0x70D11GPIOE方向控制寄存器GPEQUAL0x70D21GPIOE輸入量化控制寄存器保留0x70D31GPFMUX0x70D41GPIOF復用控制寄存器GPFDIR0x70D51GPIOF方向控制寄存器保留0x70D61保留0x70D71GPGMUX0x70D81GPIOG復用控制寄存器GPGDIR0x70D91GPIOG方向控制寄存器保留0x70DA~0x70DF6采用C/C++編程,GPIO復用寄存器的結(jié)構(gòu)體定義(在DSP281x_Gpio.h中)StuctGPIO_MUX_REGS{ union GPAMUX_REG GPAMUX; union GPADIR_REG GPADIR; unionGPAQUAL_REG GPAQUAL;Uint16 rsvd1; unionGPBMUX_REG GPBMUX; unionGPBDIR_REG GPBDIR; unionGPBQUAL_REG GPBQUAL; Uintl6 rsvd2[5]; unionGPDMUX_REG GPDMUX; unionGPDDIR_REG GPDDIR; unionGPDQUAL_REG GPDQUAL; Uintl6 rsvd3;
union GPEMUX_REGGPEMUX; union GPEDIR_REGGPEDIR; unionGPEQUAL_REGGPEQUAL; Uintl6 rsvd4; unionGPFMUX_REGGPFMUX; unionGPFDIR_REGGPFDIR; Uintl6 rsvd5[2]; unionGPGMUX_REGGPGMUX; unionGPGDIR_REGGPGDIR; Uintl6 rsvd6[2];};用結(jié)構(gòu)體定義后,對外部引腳進行初始化操作。voidGpio_select(void){Uint16var1;Uint16var2;Uint16var3;//設置GPIOMux寄存器,使相關I/O工作在GPIO模式
var1=0x0000;//設置GPIODIR寄存器,使相關I/O工作在GPIO輸出模式
var2=0xFFFF;var3=0x0000;//配置量化功能EALLOW;GpioMuxRegs.GPAMUX.all=var1;GpioMuxRegs.GPBMUX.all=var1;GpioMuxRegs.GPDMUX.all=var1;GpioMuxRegs.GPFMUX.all=var1;GpioMuxRegs.GPEMUX.all=var1;GpioMuxRegs.GPGMUX.all=var1;//GPIOPORT配置為輸出GpioMuxRegs.GPADIR.all=var2;GpioMuxRegs.GPBDIR.all=var2;GpioMuxRegs.GPDDIR.all=var2;GpioMuxRegs.GPDDIR.all=var2;GpioMuxRegs.GPEDIR.all=var2;GpioMuxRegs.GPFDIR.all=var2;GpioMuxRegs.GPGDIR.all=var2;//配置量化器的值GpioMuxRegs.GPAQUAL.all=var3;GpioMuxRegs.GPBQUAL.all=var3;GpioMuxRegs.GPDQUAL.all=var3;GpioMuxRegs.GPEQUAL.all=var3;EDIS;}
由于引腳的輸出緩沖直接連接到輸入緩沖,當前GPIO引腳上的任何信號都會同時傳送到外設模塊。
因此當一個引腳配置為普通的數(shù)字I/O時,必須禁止相應的能產(chǎn)生中斷的外設模塊功能,否則可能產(chǎn)生意外的中斷。
由于所有多功能復用引腳都可以通過相應的控制寄存器的位獨立配置,因此在使用時需要詳細了解各GPIO引腳對應的控制位。表給出相關寄存器位對應的被控引腳,并以C語言編程的結(jié)構(gòu)體定義為例給出了采用C/C++編程時的定義方法。以GPIOA復用為例介紹位結(jié)構(gòu)定義。表7.3GPIOA復用引腳功能分配表//GPIOA功能復用控制寄存器位結(jié)構(gòu)定義structGPAMUX_BITS{//位功能描述
Uint16PWM1_GPIOA0:1;//0 Uint16PWM2_GPIOA1:1;//1 Uint16PWM3_GPIOA2:1;//2 Uint16PWM4_GPIOA3:1;//3 Uint16PWMS_GPIOA4:1;//4 Uint16PWM6_GPIOA5:1;//5 Uint16T1PWM_GPIOA6:1;//6 Uint16T2PWM_GPIOA7:1;//7 Uint16CAP1Q1_GPIOA8:1;//8 Uint16CAP2Q2_GPIOA9:1;//9 Uint16CAP3QI1_GPIOA10:1;//10 Uint16TDIRAGPIOA11:1;//11 Uint16TCLKINA_GPIOA12:1;//12 Uint16C1TRIP_GPIOA13:1;//13 Uint16C2TRIP_GPIOA14:1;//14 Uint16C3TRIP_GPIOA15:1;//15例:點亮LED的實驗。
6個貼片LED由GPIOF端口的GPIOF8~GPIOF13直接驅(qū)動。令6個貼片LED中的DS2、4、6點亮,DS1、3、5熄滅。試編寫程序。源程序編寫如下:/***************************************************功能描述:令6個貼片LED中的2、4、6點亮,1、3、5熄滅***************************************************/#include"DSP28_Device.h"voidIOinit(){ EALLOW; //將GPIOF8~GPIOF13配置為一般I/O端口,輸出
GpioMuxRegs.GPFMUX.all=0xc0ff;GpioMuxRegs.GPFDIR.all=0x3f00; EDIS;}voidmain(void){InitSysCtrl();//系統(tǒng)初始化子程序,在DSP28_sysctrl.c中
DINT;//關閉總中斷
IER=0x0000;//關閉外設中斷
IFR=0x0000;//清中斷標志
IOinit(); //I/O初始化子程序
while(1) { GpioDataRegs.GPFDAT.all=0xd500; }}注意:在CCS3.1的項目中應包含以下文件:庫文件rts2800.lib;命令文件EzDSP_RAM_lnk.cmd;所有的*.h頭文件;C文件:DSP28_GlobalVariableDefs.c,DSP28_SysCtrl.c。2I/O數(shù)據(jù)寄存器及其應用如果復用引腳配置為數(shù)字I/O模式,則可以直接利用數(shù)據(jù)寄存器對I/O操作(讀/寫),也以利用其他輔助寄存器對各I/O進行獨立操作,如數(shù)字I/O置位(GPxSET寄存器)、數(shù)字I/O清零(GPxCLEAR寄存器)及數(shù)字I/O電平轉(zhuǎn)換(GPxTOGGLE寄存器),如表所列。2I/O數(shù)據(jù)寄存器及其應用數(shù)據(jù)寄存器(GPxDAT):I/O設成輸入,引腳有信號輸入,讀GPxDAT的值,可以讀引腳的高低電位。I/O設成輸出,寫入GPxDAT的值,可以輸出高低電位。置位寄存器(GPxSET):把寄存器內(nèi)容置1清零寄存器(GPxCLEAR):把寄存器內(nèi)容清0取反寄存器(GPxTOGGLE):把寄存器內(nèi)容取反2I/O數(shù)據(jù)寄存器及其應用只能寫,任何讀操作都返回0。只能寫1,寫0無效GpioDataRegs.GPADAT.bit.GPIOA0=0;GpioDataRegs.GPACLEAR.bit.GPIOA0=1;GpioDataRegs.GPATOGGLE.bit.GPIOA0=1;名稱地址空間大?。ā?6位)寄存器功能描述GPADAT0x70E01GPIOA數(shù)據(jù)寄存器GPASET0x70E11GPIOA置位寄存器GPACLEAR0x70E21GPIOA清零寄存器GPATOGGLE0x70E31GPIOA單獨觸發(fā)寄存器GPBDAT0x70E41GPIOB數(shù)據(jù)寄存器GPBSET0x70E51GPIOB置位寄存器GPBCLEAR0x70E61GPIOB清零寄存器GPBTOGGLE0x70E71GPIOB單獨觸發(fā)寄存器保留0x70E8~0x70EB4GPDDAT0x70EC1GPIOD數(shù)據(jù)寄存器GPDSET0x70ED1GPIOD置位寄存器GPDCLEAR0x70EE1GPIOD清零寄存器GPDTOGGLE0x70EF1GPIOD單獨觸發(fā)寄存器GPIO數(shù)據(jù)控制寄存器名稱地址空間大小(×16位)說明GPEDAT0x70F01GPIOE數(shù)據(jù)寄存器GPESET0x70F11GPIOE置位寄存器GPECLEARL0x70F21GPIOE清零寄存器GPETOGGLE0x70F31GPIOE單獨觸發(fā)寄存器GPFDAT0x70F41GPIOF數(shù)據(jù)寄存器GPFSET0x70F51GPIOF置位寄存器GPFCLEAR0x70F61GPIOF清零寄存器GPFTOGGLE0x70F71GPIOF單獨觸發(fā)寄存器GPGDAT0x70F81GPIOG數(shù)據(jù)寄存器GPGSET0x70F91GPIOG置位寄存器GPGCLEAR0x70FA1GPIOG清零寄存器GPGTOGGLE0x70FB1GPIOG單獨觸發(fā)寄存器保留0x70FC~0x70FF4voidGpio_example1(void){while(1){
GpioDataRegs.GPADAT.all=0xAAAA; GpioDataRegs.GPBDAT.all=0xAAAA; GpioDataRegs.GPDDAT.all=0x0022; GpioDataRegs.GPEDAT.all=0x0022; GpioDataRegs.GPFDAT.all=0xAAAA; GpioDataRegs.GPGDAT.all=0x0020; delay_loop();例:使用數(shù)據(jù)寄存器設置I/0的輸出,或者通過數(shù)據(jù)寄存器讀取外部引腳的狀態(tài)信息
GpioDataRegs.GPADAT.all=0x55555; GpioDataRegs.GPBDAT.all=0x55555; GpioDataRegs.GPDDAT.all=0x0041;//只有4個I/0 GpioDataRegs.GPEDAT.all=0x0005;//只有3個I/0 GpioDataRegs.GPFDAT.all=0x5555; GpioDataRegs.GPGDAT.all=0x0010;//只有2個I/0 delay_loop();}}3.5.4數(shù)字量I/O應用舉例GPIO_application文件結(jié)構(gòu)//#####################################################//文件名稱:GPIO_application.C//功能描述:DSP28GPIO-PortB7..B0:8-BitLED//CPUTimer0ISR周期50ms//看門狗使能,在定時器中斷及主程序的循環(huán)中處理//#######################################################include"DSP281x_Device.h"http://使用的函數(shù)原型聲明voidGpio_select(void);voidInitSystem(void)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人與銀行消費貸款合同(二零二五版)4篇
- 建設工程勘察設計合同(2篇)
- 二零二五年度智能設備模具定制加工合同范本4篇
- 音樂核心素養(yǎng)課程設計
- 二零二五年度門診藥品銷售權(quán)承包合作協(xié)議3篇
- 配電柜拆除施工方案
- 造價管理課程設計
- 二零二五年度孟玲與張偉離婚協(xié)議及共同財產(chǎn)分割執(zhí)行方案4篇
- 二零二五版電子商務04安全風險評估與改進合同2篇
- 腳手架加固施工方案
- 小學數(shù)學六年級解方程練習300題及答案
- 電抗器噪聲控制與減振技術(shù)
- 中醫(yī)健康宣教手冊
- 2024年江蘇揚州市高郵市國有企業(yè)招聘筆試參考題庫附帶答案詳解
- 消費醫(yī)療行業(yè)報告
- 品學課堂新范式
- GB/T 1196-2023重熔用鋁錠
- 運輸行業(yè)員工崗前安全培訓
- 公路工程安全風險辨識與防控手冊
- 幼兒園教師培訓:計數(shù)(數(shù)數(shù))的核心經(jīng)驗
- 如何撰寫和發(fā)表高水平的科研論文-good ppt
評論
0/150
提交評論