DSP2812的PWM

  • i7_799797
    了解作者
  • C/C++
    开发工具
  • 168KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-02-20 20:32
    上传日期
用PWM差生周期信号,然后用示波器观察其波形,效果比较好
DSP2812的PWM
  • lab0309-Pwm
  • Pwm.CS_
  • FILE.FPT
    2.9KB
  • FILE.DBF
    1.5KB
  • SYMBOL.FPT
    567.4KB
  • SYMBOL.CDX
    437KB
  • FILE.CDX
    3KB
  • SYMBOL.DBF
    349.1KB
  • Debug
  • Example_281xEvPwm.gel
    348B
  • Pwm.paf
    6.9KB
  • Debug.lkf
    1.4KB
  • cc_build_Debug.log
    3.8KB
  • PWM-LED6.6.22.c
    3.9KB
  • f281xqep_no_index.c
    2.6KB
  • Example_281xEvPwm.c
    2.7KB
  • Pwm.paf2
    8.9KB
  • Pwm.pjt
    2.4KB
  • PWM-QEP-LED6.25.c
    3.9KB
  • Debug.lkv
    1KB
  • Pwm.sbl
    9.4KB
  • f281xqep.c
    2.4KB
  • www.pudn.com.txt
    218B
内容介绍
#include "DSP281x_Device.h" // DSP281x Headerfile Include File #include "DSP281x_Examples.h" // DSP281x Examples Include File #define LED0_ON GpioDataRegs.GPFDAT.bit.GPIOF6=1 #define LED0_OFF GpioDataRegs.GPFDAT.bit.GPIOF6=0 #define LED1_ON GpioDataRegs.GPFDAT.bit.GPIOF7=1 #define LED1_OFF GpioDataRegs.GPFDAT.bit.GPIOF7=0 unsigned int Led_Flag; unsigned int DirectionQep; interrupt void ISRTimer0(void); void init_eva(void); void F281X_EV1_QEP_Init(void); void main(void) { InitSysCtrl(); EALLOW; GpioMuxRegs.GPAMUX.all = 0x00F0; // EVA PWM 5-6 GPIOA1,2,3,4 GpioMuxRegs.GPADIR.bit.GPIOA0=1; //配置IO口为输出 GpioMuxRegs.GPADIR.bit.GPIOA1=1; GpioMuxRegs.GPADIR.bit.GPIOA2=1; GpioMuxRegs.GPADIR.bit.GPIOA3=1; GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=0; //配置GPIOF6,7 为输出 GpioMuxRegs.GPFDIR.bit.GPIOF6=1; GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7=0; GpioMuxRegs.GPFDIR.bit.GPIOF7=1; EDIS; DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; PieVectTable.TINT0 = &ISRTimer0; EDIS; InitCpuTimers(); ConfigCpuTimer(&CpuTimer0, 100, 1500000/8); StartCpuTimer0(); //定时器开始 IER |= M_INT1; //使能连接到CPU-TIMER0的CPU中断 PieCtrlRegs.PIEIER1.bit.INTx7=1; //使能PIE组1第7个中断 EINT; // 使能全局中断 ERTM; // 使能全局实时中断DBGM init_eva(); //初始化EVA F281X_EV1_QEP_Init(); // Initialize QEP module // qep1.LineEncoder = 512; // qep1.MechScaler = _IQ30(0.25/qep1.LineEncoder); // qep1.PreScaler = 249; // qep1.OutputMechScaler = _IQ30((0.25/qep1.PreScaler)*(1.0/qep1.LineEncoder)); // qep1.init(&qep1); for(;;) { GpioDataRegs.GPADAT.all=0x000A; //控制电机正转 } } void init_eva() { // EVA 配置 PWM5-PWM6 // 初始化EVA定时器1 EvaRegs.T1PR = 0xFFFF; // 定时器1周期 // EvaRegs.T1CMPR = 0x3C00; // 定时器1比较器 EvaRegs.T1CNT = 0x0000; // 定时器1计数器 EvaRegs.T1CON.all = 0x1042; // TMODE = 连续递增、递减计数,定时器使能,比较使能 EvaRegs.CMPR3 = 0x3C00; // 使能PWM5-PWM6 EvaRegs.ACTRA.all = 0x0666; // 输出引脚5 CMPR3 - 高有效 输出引脚6 CMPR3 - 低有效 EvaRegs.DBTCONA.all = 0x0000; // 禁止死区 EvaRegs.COMCONA.all = 0xA600; } interrupt void ISRTimer0(void) { CpuTimer0.InterruptCount++; PieCtrlRegs.PIEACK.all=PIEACK_GROUP1 //中断相应并准备接受更多中断 // qep1.isr(&qep1); // qep1.calc(&qep1); if(Led_Flag == 1) { LED0_OFF; LED1_ON; Led_Flag = 0; } else { LED0_ON; LED1_OFF; Led_Flag = 1; } } void F281X_EV1_QEP_Init(void) { int LineEncoder=15; EvaRegs.CAPCONA.all = 0x6000; // 设置捕捉单元qep1,qep2 EvaRegs.T2CNT = 0x0000; // 定时器2计数器初始化 EvaRegs.T2CON.all = 0670; // 设置为定向增减模式,以QEP电路为时钟源,使能定时器,比较禁止,重载条件 EvaRegs.T2PR = 4*LineEncoder; // Init Timer 2 period Register // EvaRegs.EVAIFRC.bit.CAP3INT = 1; // Clear CAP3 flag // EvaRegs.EVAIMRC.bit.CAP3INT = 1; // Enable CAP3 Interrupt DirectionQep = 0x4000&EvaRegs.GPTCONA.all; DirectionQep = DirectionQep>>14; EALLOW; // Enable EALLOW GpioMuxRegs.GPAMUX.all |= 0x0300; // Set up the capture pins to primary functions EDIS; // Disable EALLOW } //=========================================================================== // No more. //===========================================================================
评论
    相关推荐
    • dsp开发手册
      DSP工程师手册,非常好的一本书,对DSP学习者非常有帮助
    • dsp原理PPT
      dsp的相关原理介绍,学习dsp开发的小伙伴可以参考一下!
    • DSP28335
      DSP28335....................................................
    • DSP精华问答
      此文档收集了很多关于DSP开发中遇到的问题以及解决办法,实用性很强!
    • DSP培训讲义
      DSP培训讲义。非常全面、系统的介绍了DSP开发的过程以及需要注意的问题。
    • dsp学习教程
      关于dsp学习的资料,包括一些教程,DSP芯片原理及应用,DSP的指令系统,基于DSP5402的音频处理设计与实现。
    • DSPDSP例程
      DSP中的各种例程,CCS程序的各种代码,适合初学者 DSP中的各种例程,CCS程序的各种代码,适合初学者
    • DSPBuilder
      DSPBuilder-讲义,DSP Builder设计初步
    • DSP_MATLAB
      本光盘共包含三个子目录,分别是DSP_FORTRAN, DSP_C和DSP_MATLAB。DSP_FORTRAN和DSP_C各含有约40个信号处理的子程序,概括了书中所涉及到的绝大部分算法。程序分别由FORTRAN语言和C语言编写(MA模型、ARMA模型及最小...
    • DSP实验指导书
      DSP 是一门理论与实践并重的技术,在学习了DSP 的结构体系与基本原理以 后,必须配合通过一些典型的DSP 实验,以加深对DSP 软、硬件的理解与掌握, 同时学会DSP 的开发工具的使用,了解DSP 应用系统的开发环境...