wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12042|回復: 1
打印 上一主題 下一主題
收起左側

單片機+DRV8833直流電機驅動程序,霍爾傳感器精確測速

[復制鏈接]
跳轉到指定樓層
樓主
直流電機驅動程序,采用DRV8833驅動,并用霍爾傳感器測量轉速,測量精確



所有資料51hei提供下載:
直流電機驅動程序,采用DRV8833驅動,并用霍爾傳感器測量轉速,測量精確.zip (655.84 KB, 下載次數: 163)

msp430單片機源程序如下:
  1. /*
  2. * DC_Motor.c
  3. *
  4. *  Created on: 8-31
  5. *      Author: zdl
  6. */

  7. #include "global.h"

  8. //---------------------相關宏定義-------------------------
  9. #define ENCODE_NUM                4                                //測速碼盤齒輪數目
  10. #define MAX_SPEED       340                                //最大轉速(r/s)

  11. #define P_Coefficient   11                                //PID反饋中的比例系數
  12. #define I_Coefficient        2                                //PID反饋中的微分系數
  13. #define D_Coefficient        1                                //PID反饋中的積分系數

  14. //---------------------相關變量定義-----------------------
  15. static uint16_t         ui16Speed_Preset = 0;                //預設速度
  16. static uint16_t                ui16Speed_True = 0;                        //實測速度,單位XX轉/分
  17.            uint16_t                ui16Speed_Measure = 0;                        //實測速度,單位XX轉/分
  18. static uint16_t         ui16Speed_Pecent = 0;                //速度百分比,用于更新速度曲線
  19. uint16_t         ui16TA0_Overflow_Cnt = 0;        //定時器溢出計數
  20. uint16_t         ui16TA1_Overflow_Cnt = 0;        //定時器溢出計數
  21. static uint8_t         ui8FirstFlag = 1;                        //PID算法中微分項需要判斷首次上電

  22. //---------------------局部函數聲明---------------------
  23. static void Speed_Disp();
  24. static uint16_t PID_PWM(int16_t i16Error);
  25. static void Get_Fre();

  26. void DC_Motor_Graph()
  27. {
  28.         //-----Draw Title-----
  29.         GrClearDisplay(&g_sContext);
  30.         GrTaskRectDraw();

  31.         //-----繪制轉速單位-----
  32.         GrStringDrawCentered(&g_sContext, "(r/s)", AUTO_STRING_LENGTH, 52, 20, OPAQUE_TEXT);

  33.         //-----繪制波形坐標軸-----

  34.         GrAxisDraw();
  35.         GrFlush(&g_sContext);
  36. }

  37. void DC_Motor_Begin()
  38. {
  39.         //--------GPIO Init--------
  40.         P2DIR &= ~BIT7;                                //-----測速中斷IO初始化-----
  41.         P2IES |= BIT7;
  42.         P2IE  |= BIT7;

  43.         P1DIR |= BIT3 +BIT4;                //-----配置P1.3和P1.4電機PWM控制IO參數-----
  44.         P1OUT |= BIT3;
  45.         P1SEL |= BIT4;

  46.         //-----TA1 ContinuousMode Init-----
  47.         TIMER_A_configureContinuousMode(__MSP430_BASEADDRESS_T1A3__,//選擇TA1定時器
  48.                                                                         TIMER_A_CLOCKSOURCE_SMCLK,
  49.                                                                         TIMER_A_CLOCKSOURCE_DIVIDER_1,
  50.                                                                         TIMER_A_TAIE_INTERRUPT_ENABLE,
  51.                                                                         TIMER_A_DO_CLEAR);
  52.         TA1CTL = TASSEL_2 + MC_2 + TACLR + TAIE; //啟動測速
  53.         //-----TA0.3 PWM Init------
  54.         TIMER_A_generatePWM(  __MSP430_BASEADDRESS_T0A5__,//選擇TA0定時器
  55.                                                                 TIMER_A_CLOCKSOURCE_SMCLK,
  56.                                                                 TIMER_A_CLOCKSOURCE_DIVIDER_1,
  57.                                                                 SYSMCLK/10000-1,                                                        //PWM 10K
  58.                                                            TIMER_A_CAPTURECOMPARE_REGISTER_3,
  59.                                                            TIMER_A_OUTPUTMODE_SET_RESET ,
  60.                                                            SYSMCLK/10000-1
  61.                                                                    );

  62.         //-----首次PID算法置標志位-----
  63.         ui8FirstFlag = 1;                                //PID算法中用于判斷第一次的標志位
  64. }

  65. void DC_Motor_Main()
  66. {
  67.         Draw_Histogram(0);                                        //更新柱狀圖
  68.         Get_Fre();
  69.         Speed_Disp();                                                //更新預設與實測速度值
  70.         Draw_Waveform(&ui16Speed_Pecent,1); //更新速度曲線
  71.         GrFlush(&g_sContext);                                //刷新屏幕
  72.         LPM3;                                                                //執行函數由WDT定時喚醒
  73. }

  74. void DC_Motor_Quit()
  75. {
  76.         //-----GPIO Quit-----
  77.         P2DIR |= BIT7;
  78.         P2IE  &= ~BIT7;
  79.         P1SEL &= ~BIT4;
  80.         P1OUT &= ~(BIT3+BIT4);
  81.         ui8FirstFlag=1;

  82.         //-----TA0 Quit-----
  83.         TIMER_A_disableInterrupt(__MSP430_BASEADDRESS_T0A5__);

  84.         //-----TA1 Quit-----
  85.         TIMER_A_disableInterrupt(__MSP430_BASEADDRESS_T1A3__);
  86. }

  87. //-------------速度顯示-------------
  88. static void Speed_Disp()
  89. {
  90.         //-----更新變量值-----
  91.         ui16Speed_Preset=MAX_SPEED*ui8Wheel_Pecent/100;
  92.         ui16Speed_Pecent=ui16Speed_True*100/MAX_SPEED;

  93.         //-----刷新顯示-----
  94.         GrStringDrawCentered(&g_sContext, "     ",
  95.                         AUTO_STRING_LENGTH,20,20, OPAQUE_TEXT);                //清除前一次顯示
  96.         GrStringNumberCentered(&g_sContext,
  97.                         ui16Speed_True,0,20,20);

  98.         GrStringDrawCentered(&g_sContext, "     ",
  99.                         AUTO_STRING_LENGTH,113,20, OPAQUE_TEXT);        //清除前一次顯示
  100.         GrStringNumberCentered(&g_sContext,
  101.                         ui16Speed_Preset,0,113,20);
  102.         ui16Speed_True=0;
  103.         ui16Speed_Preset=0;
  104. }

  105. //----PID算法,計算出PWM占空比,8192等同100%占空比------
  106. static uint16_t PID_PWM(int16_t i16Error)
  107. {
  108.         static int16_t        i16Error_Prev = 0;
  109.         static int16_t        i16Integral = 0;
  110.         int16_t i16P_Component ,i16I_Component ,i16D_Component ;
  111.         int16_t i16Result;

  112.         if(ui8FirstFlag)                        //首次上電缺乏前次誤差,補上。
  113.         {
  114.                 ui8FirstFlag = 0;
  115.                 i16Error_Prev = i16Error;
  116.                 i16Integral=0;
  117.         }

  118.         i16P_Component = P_Coefficient*i16Error;
  119.         i16I_Component = I_Coefficient*i16Integral;
  120.         i16D_Component = D_Coefficient*(i16Error-i16Error_Prev);
  121.         //-----誤差積分-----
  122.         i16Integral += i16Error;
  123.         i16Result = i16P_Component + i16I_Component + i16D_Component;

  124.         //-----輸出限幅----
  125.         if(i16Result > 8192)
  126.                 i16Result = 8192;
  127.         if(i16Result < 0)
  128.                 i16Result = 0;
  129.         return(i16Result);
  130. }

  131. /********************************************************
  132. *
  133. *                         以下函數需要放置在中斷服務子函數中調用
  134. *
  135. ********************************************************/

  136. //-----WDT中斷定時更新占空比-----
  137. void Change_PWM_Duty()
  138. {
  139.         int16_t i16Error = ui16Speed_Preset - ui16Speed_True;
  140.         uint32_t ui16PWM_Duty = PID_PWM(i16Error);
  141.         TA0CCR3 = (uint16_t)((ui16PWM_Duty)*TA0CCR0/8192);                //改變PWM占空比
  142. }

  143. //-----測量實際轉速,此函數在P2中斷中被調用-----
  144. static uint16_t ui16PreTemp=0;
  145. void Measure_Freq()
  146. {
  147.         uint32_t Speed_Sum;
  148.         uint16_t ui16Temp;

  149.         ui16Temp=TA1R;
  150.         Speed_Sum = (uint32_t)ui16Temp + (uint32_t)65536*ui16TA1_Overflow_Cnt-ui16PreTemp;//測速前的值減去測速后的計數值,那么就是在一段時間內計數的次數
  151.         ui16PreTemp = ui16Temp;
  152.         ui16TA1_Overflow_Cnt = 0;
  153.         ui16Speed_Measure = (uint16_t)( SYSMCLK / Speed_Sum);        //計算頻率 , 開孔圓盤上有許多小孔,開孔圓盤旋轉一周,光敏元件輸出的電脈沖個數等于圓盤的開孔數,因此,可通過測量光敏元件輸出的脈沖頻率
  154. }

  155. //獲取測量的速度,應該是獲取轉速
  156. static void Get_Fre()
  157. {
  158.         ui16Speed_True = ui16Speed_Measure/ENCODE_NUM; //返回實測轉速值,除以齒輪數目
  159. }

復制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:135635 發表于 2020-3-26 13:45 | 只看該作者
謝謝分享!
回復

使用道具 舉報

無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
5#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
五月天婷婷亚洲| 欧美顶级xxxxbbbb| 唐朝av高清盛宴| 亚洲国产精品一区制服丝袜| 亚洲国产精品久久精品怡红院| 国产三级精品在线| 99精品黄色片免费大全| 99久久免费视频.com| 国产成人免费高清| 成人看片黄a免费看在线| 国产精品77777| 成人美女视频在线观看18| 国产.欧美.日韩| 国产福利一区二区| 成人综合婷婷国产精品久久蜜臀 | 久久成年人免费电影| 在线播放日韩专区| 久久精品一本久久99精品| 久久精品一本久久99精品| 久久久国产视频| 欧美区在线播放| 亚洲成av人**亚洲成av**| 亚洲精品福利视频网站| 亚洲一二三四在线观看| 岛国av一区二区在线在线观看| 欧美午夜精品在线| 欧美视频完全免费看| 欧美美女一区二区在线观看| 日韩欧美一区二区免费| 亚洲精品成人久久久| 亚洲网站在线观看| 欧美激情免费看| 国产精品精品视频| 91在线短视频| 性高潮久久久久久久久| 成人免费a级片| 女人扒开屁股爽桶30分钟| 精品欧美一区二区三区久久久| 鲁鲁狠狠狠7777一区二区| 一区高清视频| 日韩欧美精品在线观看视频| 欧美情侣性视频| 欧美激情第6页| 成人亲热视频网站| 日本高清一区| 18岁网站在线观看| 麻豆网站免费观看| 日日操免费视频| 免费视频网站在线观看入口| 成人免费视频国产| 91动漫在线| 香港三级经典全部种子下载| 在线播放麻豆| 日本精品另类| 欧美日韩有码| 免费av成人在线| 中文字幕免费观看一区| 欧洲精品一区二区三区在线观看| 日韩av一卡二卡| 1769国内精品视频在线播放| 国产精品theporn88| 成人在线观看www| 亚欧精品在线视频| 欧美日韩在线观看免费| 精品人妻一区二区三区蜜桃 | 成人免费在线播放| 美国一区二区三区在线播放| 国产女同性恋一区二区| 欧美日韩午夜在线视频| xx视频.9999.com| 97久久天天综合色天天综合色hd| youjizz.com在线观看| 精品人妻一区二区免费| 五月婷婷亚洲综合| 五月精品在线| 小水嫩精品福利视频导航| 偷拍视频一区二区三区| 天天影视天天精品| 成人国产视频在线观看| 在线观看亚洲专区| 欧美精品18videos性欧| 日本成人三级电影网站| 在线观看视频你懂得| 偷偷操不一样的久久| 麻豆国产在线视频| 国产女人在线观看| 久久精品国产亚洲a∨麻豆| 黄瓜视频成人app免费| 2023国产精品久久久精品双| 国产91精品免费| 色哟哟国产精品免费观看| 精品国偷自产在线视频| 加勒比在线一区二区三区观看| www黄色日本| 成人免费网站黄| 欧美黄色aaa| 手机看片福利在线| 99爱免费视频| 污的网站在线观看| 久久国产电影| 盗摄精品av一区二区三区| 亚洲国产aⅴ天堂久久| 亚洲娇小xxxx欧美娇小| 国产精品6699| 青青在线免费视频| 国产精品成人99一区无码 | 亚洲男人的天堂在线播放| 国产99久久精品一区二区 夜夜躁日日躁 | 少女频道在线观看高清| 欧美黄色影院| 日韩电影一区二区三区| 91免费观看视频在线| 日韩欧美视频一区| 日韩免费观看高清| 日本xxx免费| 中日韩精品一区二区三区| 中文字幕一区二区三区四区免费看 | 欧美亚洲自偷自偷| 综合久久久久综合| 亚洲免费精彩视频| www.av一区视频| 乱子伦视频在线看| www.youjizz.com亚洲| 欧美性色黄在线视频| 500福利第一精品导航| 动漫视频在线一区| 国产一区二区女| 9191久久久久久久久久久| 欧美中文字幕视频在线观看| 先锋影音男人资源| 国产精品情侣呻吟对白视频| 成人小说亚洲一区二区三区| 1024欧美极品| 国产精品天天看天天狠| 国内精品在线播放| 欧美日韩免费观看一区三区| 欧美专区在线播放| 久久久亚洲精品无码| 欧美成人精品激情在线视频| 国产亚洲精品久久久久久青梅 | 2020天天操| 第84页国产精品| 亚洲国产日韩在线| 亚洲成人在线观看视频| 欧美黑人xxxx| 欧美乱大交xxxxx潮喷l头像| 免费一级肉体全黄毛片| 色xxx在线播放| 免费福利视频一区二区三区| 亚洲女人av| 亚洲成人免费观看| 91精品免费视频| 国产伦精品一区二区三区妓女下载 | 天天操天天爽天天射| 无码人妻av一区二区三区波多野| 日本成人免费| 日韩一区网站| 99免费精品在线观看| 日韩精品免费在线观看| 麻豆视频成人| 欧美卡一卡二卡三| 九色蝌蚪在线视频| 国产69精品久久久久按摩| 麻豆久久久久久| 精品嫩草影院久久| 久久五月天婷婷| 黄色片网站免费| 国内国产区免费视频| 日韩成人综合网站| 成人v精品蜜桃久久一区| 欧美精品一区二区在线观看| 秋霞在线观看一区二区三区| 制服丨自拍丨欧美丨动漫丨| 激情亚洲综合网| 国产乱人伦精品一区| 国产日韩一级二级三级| 美日韩精品免费视频| 六月丁香激情网| 91无套直看片红桃| av在线播放av| 国产精品88久久久久久| 欧美日韩专区在线| 国语精品中文字幕| 久久精品亚洲a| 麻豆视频免费看| 天堂成人娱乐在线视频免费播放网站| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 99综合电影在线视频| 中文字幕欧美日韩| 国产黄色一级网站| 成人免费一级视频| 国产天堂在线播放视频| 麻豆精品精品国产自在97香蕉| 日韩av在线播放资源| 日韩不卡一二区| 99成人精品视频| jizz在线免费观看| 性色av一区二区怡红| 日韩美女天天操| 天堂av免费看| 无码国产伦一区二区三区视频| 国产福利电影在线播放| 国产成人一区在线| 美日韩在线视频| 国产小视频精品| 一本久久精品| www.久久| 亚洲欧洲精品天堂一级| 国产精品久久久久久久美男| 亚洲一区二区三区蜜桃| av电影在线观| 国产精品毛片一区二区在线看| 日韩欧美视频一区| 国产原创中文在线观看| 天天操天天插天天射| 亚洲精品视频在线免费| 一本色道久久| 亚洲无av在线中文字幕| 亚洲精品高清无码视频| 九九这里只精品视在线99| 国产一区99| 欧美丰满少妇xxxxx高潮对白| 中文字幕精品—区二区日日骚| 国产美女精品视频国产| 卡通欧美亚洲| 亚洲图片欧美激情| 色综合久久中文字幕综合网小说| 欧美老熟妇乱大交xxxxx| 男人天堂av网站| 伊人久久亚洲热| 精品91自产拍在线观看一区| 日本一道本久久| 欧美野外多人交3| 三级网站视频在在线播放| 国产拍揄自揄精品视频麻豆| 国产日韩一区在线| 精品肉丝脚一区二区三区| 日韩精品黄色| 99久久精品免费看国产| 国产精品视频午夜| 国产系列精品av| 国产盗摄一区二区| 欧美国产97人人爽人人喊| 91在线免费看片| 在线免费观看高清视频| 久久毛片亚洲| 亚洲福利视频三区| 欧美男女爱爱视频| 国产深夜福利| 黄色网址免费在线观看| av一区二区三区黑人| 成人h猎奇视频网站| 国产又黄又粗又爽| 污污的网站在线看| 亚洲福利视频一区| 国产女人18毛片| 欧美a一片xxxx片| 欧洲杯足球赛直播| 欧美精品一区二区三区四区| 日日干夜夜操s8| 亚洲女人天堂| 豆国产96在线|亚洲| 成人午夜小视频| 亚洲天堂中文字幕在线| 欧美综合影院| 欧美日韩日日骚| 美女流白浆视频| 97福利网站在线观看视频| 久久99精品久久久久久国产越南 | 欧美videossexotv100| 69久久久久久| 人人在线97| 成人丝袜18视频在线观看| 91人人爽人人爽人人精88v| 色一情一乱一区二区三区| h视频在线看| 国产精品99一区二区| 欧美精品免费看| 国产精品a成v人在线播放| 丁香六月综合| 精品美女久久久久久免费| 三级a三级三级三级a十八发禁止| 国产bdsm| eeuss国产一区二区三区| 91色视频在线导航| 中文字幕第五页| 伊人久久大香线蕉av超碰演员| 国语自产在线不卡| 欧美一级淫片免费视频黄| 国产精品久久久久久av公交车| 日韩西西人体444www| 在线能看的av网站| 久草热久草在线频| 91麻豆国产自产在线观看| 日韩欧美在线一区二区| 一本本久综合久久爱| 亚洲影视综合| 91久久精品美女| 男人的天堂色| 9色国产精品| 日本午夜在线亚洲.国产| 欧美男人天堂网| 高清一区二区| 亚洲精品自产拍| 国产这里有精品| 精品一区二区三区中文字幕在线 | 日韩欧美国产一区在线观看| 亚洲国产综合视频| 在线你懂的视频| 色综合一区二区| 日本少妇激三级做爰在线| 日韩在线免费电影| 无吗不卡中文字幕| www.亚洲自拍| 国产在线更新| 无码av中文一区二区三区桃花岛| 一级欧美一级日韩片| 69av成人| 精品国产91亚洲一区二区三区婷婷| 成人国产精品久久久网站| 亚洲校园激情春色| 亚洲图片制服诱惑| 日韩黄色一级大片| 蜜桃一区二区三区| 668精品在线视频| 亚洲国产剧情在线观看| 日本 国产 欧美色综合| 久久伊人一区二区| www.操操操| 欧美国产欧美亚州国产日韩mv天天看完整| 激情五月六月婷婷| 91精彩视频在线播放| 在线免费观看一区| 久久精品无码一区| 国产一区二区三区国产精品| 最近中文字幕日韩精品 | 在线免费观看av片| 欧美日韩国产高清| 成人自拍偷拍| 狠狠色噜噜狠狠狠8888米奇| 91蝌蚪porny| 国产成人av影视| 中日韩高清电影网| 欧美大胆一级视频| 久久久精品视频免费| 亚洲手机在线| 欧美精品一区二区三区在线四季 | 一二三四视频免费观看在线看 | 欧美精品啪啪| 国产伦精品一区二区三区在线| 国产精品久久久高清免费| 国产农村妇女毛片精品久久麻豆 | 天天综合狠狠精品| h动漫在线视频| 欧美日韩精品三区| 欧美成人精品激情在线视频| 欧美女王vk| 91精品一区二区| c++连点器| 亚洲超碰精品一区二区| 小毛片在线观看| 伊人久久大香线蕉无限次| 国产精品自在线| 九九在线观看免费视频| 亚洲欧洲综合另类| 登山的目的在线| av一区二区在线播放| 99国产视频| 国产偷激情在线| 亚洲国产精品久久久久婷婷884| 我要看黄色一级片| 欧美电影一区| 明星裸体视频一区二区| 亚洲成人福利| 精品久久国产97色综合| 中文字幕+乱码+中文| 久久久国产精品一区二区中文| 国产精品av免费| av片在线观看网站| 欧美高清不卡在线| 国产原创在线| 亚洲欧洲国产专区| 嘿嘿视频在线观看| 97欧美在线视频| 日韩av图片| 99青草视频在线播放视| 亚洲美女免费精品视频在线观看| 中文天堂在线视频| av资源网一区| 女女调教被c哭捆绑喷水百合| **爰片久久毛片| 亚洲www永久成人夜色| 黄视频在线观看免费| 亚洲国内精品在线| 国产片高清在线观看| 丁香激情综合五月| 国产二级一片内射视频播放| 精品深夜福利视频| 国产美女精品在线观看| 欧美中文在线|