找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm32控制舵機(jī)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:907565 發(fā)表于 2021-7-15 13:02 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
單片機(jī)控制舵機(jī)程序,用的是原字的定時器中斷實(shí)驗(yàn)改的

單片機(jī)源程序如下:
  1. #include "pwm.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "timer.h"

  6. u8 JD=0;
  7. u32 a0,a1;
  8. u8 flag1=0,flag2=0;//定時器計數(shù)20ms到了的標(biāo)志

  9. int main(void)
  10. {
  11.         u16 t1=0,t2=0;
  12.         u8 YS[6]={0,60,120,180,120,60};
  13.         delay_init();                     //延時函數(shù)初始化         
  14.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  15.         uart_init(9600);         //串口初始化為115200
  16.          PWM_Init();                             //LED端口初始化
  17.         TIM3_Int_Init(9,71);//10us
  18. //        t1=(t1/180)*2000;
  19.         while(1)
  20.         {/*
  21.                 PWM0=1;
  22.                 delay_us(500+t1);//延時
  23.                 PWM0=0;
  24.                 delay_ms(20);//延時
  25. */
  26. //                if(flag1==1)
  27. //                {
  28. //                        flag1=0;
  29. //                        t2++;
  30. //                        if(t2==50)
  31. //                        JD=60;
  32. //                        if(t2==100)
  33. //                        JD=120;
  34. //                        if(t2==150)
  35. //                        JD=180;
  36. //                        if(t2==200)
  37. //                        JD=120;
  38. //                        if(t2==250)
  39. //                        JD=60;
  40. //                        if(t2==300)
  41. //                        {
  42. //                                JD=0;
  43. //                                t2=0;
  44. //                        }
  45. //                }
  46.                 if(flag2==1)
  47.                 {
  48.                         flag2=0;
  49.                         JD=YS[t2];
  50.                         t2++;
  51.                         if(t2>=6)
  52.                         {
  53.                                 t2=0;
  54.                         }
  55.                 }
  56.         }
  57. }



  58. //定時器3中斷服務(wù)程序
  59. void TIM3_IRQHandler(void)   //TIM3中斷
  60. {
  61.         if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //檢查TIM3更新中斷發(fā)生與否
  62.                 {
  63.                         TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx更新中斷標(biāo)志
  64.                         a0++;a1++;
  65. /*************PWM0**************/                        
  66.                         if(a0==(50+JD))
  67.                         {
  68.                                 PWM0=0;
  69.                         }
  70.                         if(a0>=2000)
  71.                         {
  72.                                 a0=0;
  73.                                 PWM0=1;
  74.                                 flag1=1;
  75.                         }
  76.                         if(a1>=100000)
  77.                         {
  78.                                 a1=0;
  79.                                 flag2=1;
  80.                         }
  81.                 }
  82. }
復(fù)制代碼

所有代碼51hei提供下載:
舵機(jī)程序.7z (184.97 KB, 下載次數(shù): 18)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表