2812CCS动态显示图形.docx

上传人:b****3 文档编号:5443051 上传时间:2023-05-08 格式:DOCX 页数:24 大小:21.35KB
下载 相关 举报
2812CCS动态显示图形.docx_第1页
第1页 / 共24页
2812CCS动态显示图形.docx_第2页
第2页 / 共24页
2812CCS动态显示图形.docx_第3页
第3页 / 共24页
2812CCS动态显示图形.docx_第4页
第4页 / 共24页
2812CCS动态显示图形.docx_第5页
第5页 / 共24页
2812CCS动态显示图形.docx_第6页
第6页 / 共24页
2812CCS动态显示图形.docx_第7页
第7页 / 共24页
2812CCS动态显示图形.docx_第8页
第8页 / 共24页
2812CCS动态显示图形.docx_第9页
第9页 / 共24页
2812CCS动态显示图形.docx_第10页
第10页 / 共24页
2812CCS动态显示图形.docx_第11页
第11页 / 共24页
2812CCS动态显示图形.docx_第12页
第12页 / 共24页
2812CCS动态显示图形.docx_第13页
第13页 / 共24页
2812CCS动态显示图形.docx_第14页
第14页 / 共24页
2812CCS动态显示图形.docx_第15页
第15页 / 共24页
2812CCS动态显示图形.docx_第16页
第16页 / 共24页
2812CCS动态显示图形.docx_第17页
第17页 / 共24页
2812CCS动态显示图形.docx_第18页
第18页 / 共24页
2812CCS动态显示图形.docx_第19页
第19页 / 共24页
2812CCS动态显示图形.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

2812CCS动态显示图形.docx

《2812CCS动态显示图形.docx》由会员分享,可在线阅读,更多相关《2812CCS动态显示图形.docx(24页珍藏版)》请在冰点文库上搜索。

2812CCS动态显示图形.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2