久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2573|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

dspf2812實(shí)現(xiàn)電機(jī)檢測霍爾傳感器程序,實(shí)現(xiàn)自動(dòng)加速和正反轉(zhuǎn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
dspf2812實(shí)現(xiàn)電機(jī)檢測霍爾傳感器,實(shí)現(xiàn)自動(dòng)加速和正反轉(zhuǎn)


  1. #include "DSP281x_Device.h"     // DSP281x Headerfile Include File
  2. #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. //函數(shù)聲明
  16. interrupt void cpu_timer0_isr(void);  //中斷函數(shù)的聲明
  17. void gpio_init();                //GPIO配置函數(shù)聲明
  18. void fuzhi(int a,int b,int c,int d,int e,int f);  //給GPIOA0-5賦值函數(shù)聲明
  19. void  mode(int a);          //狀態(tài)選擇和GPIOA8-10讀取輸出

  20. int  driver_state=1;  //中斷查詢確定在狀態(tài)多少,driver_state取值1-6個(gè)狀態(tài)
  21. int  rotor_code;  //存放GPIOA8-10的輸出狀態(tài)

  22. void main(void)  //主函數(shù)
  23. {
  24.    InitSysCtrl();//初始化系統(tǒng)
  25.    gpio_init();  //GPIOA初始化
  26.    DINT;                         //關(guān)中斷
  27.    IER = 0x0000;
  28.    IFR = 0x0000;
  29.    InitPieCtrl();//初始化PIE
  30.    InitPieVectTable();//初始化PIE中斷矢量表
  31.    EALLOW;  
  32.    PieVectTable.TINT0 = & cpu_timer0_isr;  //定時(shí)器0位中斷0
  33.    EDIS;
  34.    InitCpuTimers();   // cpu初始化
  35.    //定時(shí)器0的中斷時(shí)間設(shè)置 150*1000000/150MHZ=1s
  36.    ConfigCpuTimer(&CpuTimer0, 150, 1000000);
  37.    StartCpuTimer0();          //啟動(dòng)定時(shí)器0
  38.    IER |= M_INT1;                  //啟動(dòng)cpu給定時(shí)器時(shí)鐘
  39.    PieCtrlRegs.PIEIER1.bit.INTx7 = 1; // 中斷0在向量表中的1組第7個(gè)
  40.    EINT;   // 總中斷 INTM 使能
  41.    ERTM;   // 使能總實(shí)時(shí)中斷 DBGM
  42.    for(;;);  //一直等待中斷來
  43. }
  44. interrupt void cpu_timer0_isr(void)   //中斷服務(wù)函數(shù)
  45. {       
  46.         PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; //0x0001賦給12組中斷ACKnowledge寄存器,對其全部清除,不接受其他中斷
  47.         CpuTimer0Regs.TCR.bit.TIF=1; // 定時(shí)到了指定時(shí)間,標(biāo)志位置位,清除標(biāo)志
  48.         CpuTimer0Regs.TCR.bit.TRB=1;  // 重載Timer0的定時(shí)數(shù)據(jù)
  49.         if(driver_state >= 6)
  50.                 driver_state=0;   //狀態(tài)達(dá)到最大值6后復(fù)位0
  51.         mode(driver_state);   //根據(jù)狀態(tài)值,選擇模式
  52.         driver_state++;
  53. }
  54. //模式選擇和讀取GPIO8-10的值
  55. void  mode(int a)   //給 GPIOA 0 2 4 1 3 5賦值
  56. {
  57.         switch(a)
  58.                 {
  59.                         case 1:
  60.                                 fuzhi(1,0,0,1,1,0);  //1,0,0,1,1,0
  61.                                 break;  //狀態(tài)1
  62.                         case 2:
  63.                                 fuzhi(1,0,0,1,0,1);  //1,0,0,1,0,1
  64.                                 break;        //狀態(tài)2
  65.                         case 3:
  66.                                 fuzhi(0,1,0,0,1,1);  //0,1,0,0,1,1
  67.                                 break;        //狀態(tài)3
  68.                         case 4:
  69.                                 fuzhi(0,1,0,1,1,0); //0,1,0,1,1,0
  70.                                 break;        //狀態(tài)4
  71.                         case 5:
  72.                                 fuzhi(0,0,1,1,0,1);  //0,0,1,1,0,1
  73.                                 break;        //狀態(tài)5
  74.                         case 6:
  75.                                 fuzhi(0,0,1,0,1,1);  //0,0,1,0,1,1
  76.                                 break;        //轉(zhuǎn)態(tài)6
  77.                         default:
  78.                                 fuzhi(1,0,0,1,1,0);//1,0,0,1,1,0
  79.                                 break;                //默認(rèn)狀態(tài)1
  80.                 }
  81.         //為了求取rotor_code的值,把GPIOA8-10設(shè)置有權(quán)重
  82.         int sum=PA10*4+PA9*2+PA8*1;
  83.         if(sum==0)
  84.                 rotor_code=0;
  85.         if(sum==1)
  86.                 rotor_code=1;
  87.         if(sum==2)
  88.                 rotor_code=10;
  89.         if(sum==3)
  90.                 rotor_code=11;
  91.         if(sum==4)
  92.                 rotor_code=100;
  93.         if(sum==5)
  94.                 rotor_code=101;
  95.         if(sum==6)
  96.                 rotor_code=110;
  97.         if(sum==7)
  98.                 rotor_code=111;
  99. }
  100. //給GPIOA0-5賦值
  101. void fuzhi(int a,int b,int c,int d,int e,int f)
  102. {
  103.         PA0=a;
  104.         PA2=b;
  105.         PA4=c;
  106.         PA1=d;
  107.         PA3=e;
  108.         PA5=f;
  109. }
  110. //GPIOA的端口模式選擇
  111. void gpio_init()
  112. {//設(shè)置GPIOA0-5是輸出模式   GPIOA8-10是輸入模式
  113.   EALLOW;
  114.   GpioMuxRegs.GPADIR.bit.GPIOA0 = 1;  // GPIOA0設(shè)置為輸出
  115.   GpioMuxRegs.GPADIR.bit.GPIOA1 = 1;
  116.   GpioMuxRegs.GPADIR.bit.GPIOA2 = 1;
  117.   GpioMuxRegs.GPADIR.bit.GPIOA3 = 1;
  118.   GpioMuxRegs.GPADIR.bit.GPIOA4 = 1;
  119.   GpioMuxRegs.GPADIR.bit.GPIOA5 = 1;// GPIOA5設(shè)置為輸出


  120.   GpioMuxRegs.GPADIR.bit.GPIOA8 = 0;  //GPIOA8設(shè)置為輸入
  121.   GpioMuxRegs.GPADIR.bit.GPIOA9 = 0;  //  設(shè)置為輸入
  122.   GpioMuxRegs.GPADIR.bit.GPIOA10 = 0;  // GPIOA10 設(shè)置為輸入

  123. }

  124. //===========================================================================
  125. // No more.
  126. //===========================================================================
復(fù)制代碼


HW1_2019217472_P1.rar

317.63 KB, 下載次數(shù): 14, 下載積分: 黑幣 -5

HW1_2019217472_P2.rar

317.92 KB, 下載次數(shù): 11, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人一区二区电影 | 91玖玖 | 国产精品二区三区 | 日韩电影在线一区 | 精品国产一区久久 | 亚洲精品一区二区三区中文字幕 | 国产亚洲高清视频 | 国产日韩精品一区 | 国产一区二区免费 | 久草免费在线视频 | 天天影视综合 | 一级黄色影片在线观看 | 一级a性色生活片久久毛片波多野 | 日本不卡一区二区三区 | 91婷婷韩国欧美一区二区 | 天天躁日日躁狠狠躁2018小说 | 国产成人精品久久二区二区91 | 午夜天堂| 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 免费人成激情视频在线观看冫 | 亚洲精品一区二区三区 | 亚洲高清视频在线观看 | 狠狠躁夜夜躁人人爽天天高潮 | 婷婷久久网 | 午夜一区二区三区 | 国产精品五月天 | 欧美日韩一区在线播放 | 亚洲少妇综合网 | 一本一道久久a久久精品蜜桃 | 四虎永久在线精品免费一区二 | 欧美一级免费看 | 欧美在线综合 | xxx视频| 中国一级特黄视频 | 韩日av在线 | 天堂va在线观看 | 亚洲国产视频一区二区 | 午夜在线影院 | 在线观看国产 | 81精品国产乱码久久久久久 | 第四色播日韩第一页 |