2812CCS动态显示图形.docx
- 文档编号:5443051
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:24
- 大小:21.35KB
2812CCS动态显示图形.docx
《2812CCS动态显示图形.docx》由会员分享,可在线阅读,更多相关《2812CCS动态显示图形.docx(24页珍藏版)》请在冰点文库上搜索。
2812CCS动态显示图形
CCSviewgraph动态显示图形
(红色为主要内容)
采用汇编,相对C实时性高
*******************************头文件*************************************
/*============================================================================
Filename:
DLOG4CH.H
Originator:
AdvancedEmbeededControl(AEC)
TexasInstrumentsInc.
Description:
Headerfilecontainingconstants,datatypedefinitions,and
functionprototypesfortheDATALOGmodule.
===============================================================================
History:
-------------------------------------------------------------------------------
18-5-2001(DD/MM/YYYY)ReleaseRev1.0
------------------------------------------------------------------------------*/
#ifndef__DLOG4CH_H__
#define__DLOG4CH_H__
#defineNULL0
typedefstruct{longtask;//Variable:
Taskaddresspointer
int*iptr1;//Input:
Firstinputpointer(Q15)
int*iptr2;//Input:
Secondinputpointer(Q15)
int*iptr3;//Input:
Thirdinputpointer(Q15)
int*iptr4;//Input:
Fourthinputpointer(Q15)
inttrig_value;//Input:
Triggerpoint(Q15)
intprescalar;//Parameter:
Datalogprescale
intskip_cntr;//Variable:
Datalogskipcounter
intcntr;//Variable:
Datalogcounter
longwrite_ptr;//Variable:
Graphaddresspointer
intsize;//Parameter:
Maximumdatabuffer
int(*init)();//Pointertoinitfunction
int(*update)();//Pointertoupdatefunction
}DLOG_4CH;
typedefDLOG_4CH*DLOG_4CH_handle;
voidDLOG_4CH_init(void*);
voidDLOG_4CH_update(void*);
/*=============================================================================
DefaultinitalizerfortheDLOG_4CHobject.
==============================================================================*/
#defineDLOG_4CH_DEFAULTS{0UL,\
NULL,\
NULL,\
NULL,\
NULL,\
0,\
1,\
0,\
0,\
0UL,\
0x400,\
(int(*)(int))DLOG_4CH_init,\
(int(*)(int))DLOG_4CH_update}
#endif
*******************************源文件*************************************
;==============================================================================
;Filename:
DLOG4CHC.ASM
;
;Originator:
AdvancedEmbeededControl(AEC)
;TexasInstrumentsInc.
;
;Description:
4-ChannelDataloggingmodule
;
;Date:
02/01/2002(DD/MM/YYYY)
;==============================================================================
;RoutineName:
data_log_update
;
;Cprototype:
voidDLOG_4CH_update(DLOG_4CH_handle);
;voidDLOG_4CH_init(DLOG_4CH_handle);
;
;Thestructobjectisdefinedintheheaderfile"dlog_4ch.h"asfollows:
;
;typedefstruct{
;longtask;/*Variable:
Taskaddresspointer*/
;int*iptr1;/*Input:
Firstinputpointer(Q15)*/
;int*iptr2;/*Input:
Secondinputpointer(Q15)*/
;int*iptr3;/*Input:
Thirdinputpointer(Q15)*/
;int*iptr4;/*Input:
Fourthinputpointer(Q15)*/
;inttrig_value;/*Input:
Triggerpoint(Q15)*/
;intprescalar;/*Parameter:
Datalogprescale*/
;intskip_cntr;/*Variable:
Datalogskipcounter*/
;intcntr;/*Variable:
Datalogcounter*/
;longwrite_ptr;/*Variable:
Graphaddresspointer*/
;intsize;/*Parameter:
MaximumdataDLOG_4CH_buffer*/
;int(*init)();/*Pointertoinitfunction*/
;int(*update)();/*Pointertoupdatefunction*/
;}DLOG_4CH;
;==============================================================================
;ExternalReference
.def_DLOG_4CH_update
.def_DLOG_4CH_init
;Datalogbufferdefinition
BUFF_SIZE.set400h
DLOG_4CH_buff1.usect"DLOG",BUFF_SIZE
DLOG_4CH_buff2.usect"DLOG",BUFF_SIZE
DLOG_4CH_buff3.usect"DLOG",BUFF_SIZE
DLOG_4CH_buff4.usect"DLOG",BUFF_SIZE
;==============================================================================
;InitializationFunction
;==============================================================================
_DLOG_4CH_init:
MOVLXAR5,#POS_TRIG_S1
MOVL*XAR4,XAR5;task=#POS_TRIG_S1
ADDBXAR4,#10;XAR4->trig_value
MOV*+XAR4[2],#0
MOVLXAR5,#DLOG_4CH_buff1
MOVL*+XAR4[4],XAR5;write_ptr=DLOG_4CH_buff1
MOVAL,*+XAR4[6];ACC=size
MOV*+XAR4[3],AL;cntr=size
LRETR
;==============================================================================
;DatalogUpdateFunction
;==============================================================================
_DLOG_4CH_update:
SETCSXM
MOVLXAR5,XAR4;XAR4->task
MOVLXAR7,*XAR4++;XAR4->iptr1,XAR7=task
ADDBXAR5,#10;XAR5->trig_value
LB*XAR7;BranchtoTASK
POS_TRIG_S1:
MOVACC,*XAR5;ACC=trig_value
MOVLXAR6,*XAR4;XAR6=iptr1
SUBACC,*XAR6;ACC=(trig_value-*iptr1)
BFDL_EXIT,LEQ;ExitifACC<=0
MOVLXAR6,#POS_TRIG_S2
MOVL*--XAR4,XAR6;task=POS_TRIG_S2
LRETR
POS_TRIG_S2:
MOVACC,*XAR5;ACC=trig_value
MOVLXAR6,*XAR4;XAR6=iptr1
SUBACC,*XAR6;ACC=(trig_value-*iptr1)
BFDL_EXIT,GEQ;ExitifACC>=0
MOVLXAR6,#DL_TRIGGERED
MOVL*--XAR4,XAR6;task=POS_TRIG_S2
LRETR
DL_TRIGGERED:
INC*+XAR5[2];skip_cntr=skip_cntr+1
MOVACC,*+XAR5[2];ACC=skip_cntr
SUBACC,*+XAR5[1];ACC=skip_cntr-prescalar
SBFDL_EXIT,NEQ;if(skip_cntr+1) MOV*+XAR5[2],#0;skip_cntr=0 MOVACC,*+XAR5[3];ACC=cntr SBFDLOG_END,EQ DEC*+XAR5[3];cntr=cntr-1 ADDBXAR5,#4;XAR5->write_ptr MOVLXAR6,*XAR5;XAR6=write_ptr ADDBXAR6,#1;XAR6=write_ptr+1 MOVL*XAR5,XAR6;write_ptr=write_ptr+1 SUBBXAR6,#1;XAR6=write_ptr MOVAR0,#BUFF_SIZE;AR0=BUFF_SIZE ;LogsamplepointedbyIPTR1 MOVLXAR7,*XAR4++;XAR7=iptr1 MOVAL,*XAR7;AL=*iptr1 NOP*,ARP6 MOV*0++,AL;*write_ptr=*iptr1,XAR6=write_ptr+size ;LogsamplepointedbyIPTR2 MOVLXAR7,*XAR4++;XAR7=iptr2 MOVAL,*XAR7;AL=*iptr2 NOP*,ARP6 MOV*0++,AL;*write_ptr=*iptr2,XAR6=write_ptr+size ;LogsamplepointedbyIPTR3 MOVLXAR7,*XAR4++;XAR7=iptr3 MOVAL,*XAR7;AL=*iptr3 NOP*,ARP6 MOV*0++,AL;*write_ptr=*iptr3,XAR6=write_ptr+size ;LogsamplepointedbyIPTR4 MOVLXAR7,*XAR4++;XAR7=iptr4 MOVAL,*XAR7;AL=*iptr4 NOP*,ARP6 MOV*0++,AL;*write_ptr=*iptr4,XAR6=write_ptr+size LRETR ;Reinitialisethemoduletologthedatawhentheloggingistriggerednext DLOG_END: MOVLXAR6,#DLOG_4CH_buff1 MOVL*+XAR5[4],XAR6;write_ptr=DLOG_4CH_buff1 MOVLXAR6,#POS_TRIG_S1 MOVL*--XAR4,XAR6;task=POS_TRIG_S2 MOVAL,*+XAR5[6];ACC=size MOV*+XAR5[3],AL;cntr=size DL_EXIT: LRETR ********************************主程序************************************** /////////////////////////// 无刷直流电动机 24V seakeke@ 和我联系////////////////////////////////////////// 1. 2.#include "DSP281x_Device.h" // DSP281x Headerfile Include File 3.#include "DSPMotor_Head.h" 4. 5.#include "IQmathLib.h" 6.#include "BLDCMotor.h" 7.#include "parameter.h" 8. 9.#include 10.///// 函数声明 //////////////////////////////////////////////////////////// 11.interrupt void MainISR(void); 12. 13.///// 全局变量声明 14.float32 SpeedRef = 0.20; // Speed reference (pu) 15.float32 T = 0.001/ISR_FREQUENCY; // Samping period (sec), see parameter.h 16. 17.Uint32 VirtualTimer = 0; 18.Uint16 ILoopFlag = FALSE; 19.Uint16 SpeedLoopFlag = FALSE; 20.int16 DFuncDesired = 0x1A00; // Desired duty cycle (Q15)=0.2 21. 22._iq CurrentSet = _IQ(0.3); 23. 24.Uint16 IsrTicker = 0; 25.Uint16 BackTicker = 0; 26. 27.int16 DlogCh1 = 0; 28.int16 DlogCh2 = 0; 29.int16 DlogCh3 = 0; 30.int16 DlogCh4 = 0; 31. 32.// Instance PID regulator to regulate the DC-bus current and speed 33.PIDREG3 pid1_idc = PIDREG3_DEFAULTS; 34.PIDREG3 pid1_spd = PIDREG3_DEFAULTS; 35. 36.// Instance a PWM driver instance 37.PWMGEN pwm1 = PWMGEN_DEFAULTS; 38. 39.// Create an instance of the ADC driver 40.ADCVALS adc1 = ADCVALS_DEFAULTS; 41. 42.// Instance a Hall effect driver 43.HALL3 hall1 = HALL3_DEFAULTS; 44. 45.// Instance a ramp controller to smoothly ramp the frequency 46.RMPCNTL rc1 = RMPCNTL_DEFAULTS; 47. 48.// Instance a RAMP2 Module 49.RMP2 rmp2 = RMP2_DEFAULTS; 50. 51.// Instance a MOD6 Module 52.MOD6CNT mod1 = MOD6CNT_DEFAULTS; 53. 54.// Instance a SPEED_PR Module 55.SPEED_MEAS_CAP speed1 = SPEED_MEAS_CAP_DEFAULTS; 56. 57.// Create an instance of DATALOG Module 58.DLOG_4CH dlog = DLOG_4CH_DEFAULTS; 59. 60.////////////////////////// 主程序 ////////////////////////////////////////////// 61. 62.void main(void) 63.{ 64. 65.// Initialize System Control registers, PLL, WatchDog, Clocks to default state: 66. // This function is found in the DSP281x_SysCtrl.c file. 67. InitSysCtrl(); 68. 69.// HISPCP prescale register settings, normally it will be set to default values 70. EALLOW; // This is needed to write to EALLOW protected registers 71. SysCtrlRegs.HISPCP.all = 0x0000; // SYSCLKOUT/1 72. EDIS; // This is needed to disable write to EALLOW protected registers 73. 74.// Disable and clear all CPU interrupts: 75. DINT; 76. IER = 0x0000; 77. IFR = 0x0000; 78. 79.// Initialize Pie Control Registers To Default State: 80. // This function is found in the DSP281x_PieCtrl.c file. 81. InitPieCtrl(); 82. 83.// Initialize the PIE Vector Table To a Known State: 84. // This function is found in DSP281x_PieVect.c. 85. // This function populates the P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2812 CCS 动态 显示 图形