芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

IC解密tms320F2812实现电机检测霍尔传感器程序

  1. IC解密#include "DSP281x_Device.h"     // DSP281x Headerfile Include File
  2. IC解密#include "DSP281x_Examples.h"   // DSP281x Examples Include File
  3. //GPIOA的宏定义
  4. //GPIO0-5输出模式  123
  5. #define          PA0        GpioDataRegs.GPADAT.bit.GPIOA0
  6. #define          PA1        GpioDataRegs.GPADAT.bit.GPIOA1
  7. #define          PA2        GpioDataRegs.GPADAT.bit.GPIOA2
  8. #define          PA3        GpioDataRegs.GPADAT.bit.GPIOA3
  9. #define          PA4        GpioDataRegs.GPADAT.bit.GPIOA4
  10. #define          PA5        GpioDataRegs.GPADAT.bit.GPIOA5
  11. //GPIO8-10输入模式
  12. #define          PA8   GpioDataRegs.GPADAT.bit.GPIOA8
  13. #define          PA9   GpioDataRegs.GPADAT.bit.GPIOA9
  14. #define          PA10  GpioDataRegs.GPADAT.bit.GPIOA10

  15. //函数声明
  16. interrupt void cpu_timer0_isr(void);  //中断函数的声明
  17. void gpio_init();                //GPIO配置函数声明
  18. void fuzhi(int a,int b,int c,int d,int e,int f);  //给GPIOA0-5赋值函数声明
  19. void  mode(int a);          //状态选择和GPIOA8-10读取输出

  20. int  driver_state=1;  //中断查询确定在状态多少,driver_state取值1-6个状态
  21. int  rotor_code;  //存放GPIOA8-10的输出状态

  22. void main(void)  //主函数
  23. {
  24.    InitSysCtrl();//初始化系统
  25.    gpio_init();  //GPIOA初始化
  26.    DINT;                         //关中断
  27.    IER = 0x0000;
  28.    IFR = 0x0000;
  29.    InitPieCtrl();//初始化PIE
  30.    InitPieVectTable();//初始化PIE中断矢量表
  31.    EALLOW;  
  32.    PieVectTable.TINT0 = & cpu_timer0_isr;  //定时器0位中断0
  33.    EDIS;
  34.    InitCpuTimers();   // cpu初始化
  35.    //定时器0的中断时间设置 150*1000000/150MHZ=1s
  36.    ConfigCpuTimer(&CpuTimer0, 150, 1000000);
  37.    StartCpuTimer0();          //启动定时器0
  38.    IER |= M_INT1;                  //启动cpu给定时器时钟
  39.    PieCtrlRegs.PIEIER1.bit.INTx7 = 1; // 中断0在向量表中的1组第7个
  40.    EINT;   // 总中断 INTM 使能
  41.    ERTM;   // 使能总实时中断 DBGM
  42.    for(;;);  //一直等待中断来
  43. }
  44. interrupt void cpu_timer0_isr(void)   //中断服务函数
  45. {       
  46.         PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; //0x0001赋给12组中断ACKnowledge寄存器,对其全部清除,不接受其他中断
  47.         CpuTimer0Regs.TCR.bit.TIF=1; // 定时到了指定时间,标志位置位,清除标志
  48.         CpuTimer0Regs.TCR.bit.TRB=1;  // 重载Timer0的定时数据
  49.         if(driver_state >= 6)
  50.                 driver_state=0;   //状态达到最大值6后复位0
  51.         mode(driver_state);   //根据状态值,选择模式
  52.         driver_state++;
  53. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信