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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

k60直立車源程序 省賽保底程序

[復制鏈接]
跳轉到指定樓層
樓主
k60直立


單片機源程序如下:
  1. /*************************************************
  2. 第九屆電磁組ARM底層 by
  3. **************************************************/
  4. #include "All_Headers.h"
  5. /****************************************************************
  6. 功能:電機PWM初始化
  7. 形參:void
  8. 返回值:void
  9. *****************************************************************/
  10. void Motor_Init(void)//用FTM0
  11. {
  12.    GPIO_SetPinMod(PORTD,4,4);//PORTD,4,6,特殊功能號4對應FTM0的CH4與CH6 PWM輸出功能
  13.    GPIO_SetPinMod(PORTD,6,4);
  14.    GPIO_SetPinMod(PORTC,1,4);//PORTC,1,3,特殊功能號4對應FTM0的CH4與CH6 PWM輸出功能
  15.    GPIO_SetPinMod(PORTC,3,4);
  16.    SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK;//開啟對應FTM模塊時鐘門
  17.    FTM0_MODE |= FTM_MODE_WPDIS_MASK;//關閉寫保護
  18.    FTM0_C4SC |= FTM_CnSC_MSB_MASK + FTM_CnSC_ELSB_MASK;//邊沿PWM,起始高電平
  19.    FTM0_C6SC |= FTM_CnSC_MSB_MASK + FTM_CnSC_ELSB_MASK;//邊沿PWM,起始高電平
  20.    FTM0_SC &= ~FTM_SC_TOIE_MASK;//關閉溢出中斷
  21.    FTM0_SC |= FTM_SC_CLKS(1) + FTM_SC_PS(2);//選擇50MHZ總線時鐘 且4分頻 即FTM0計數頻率 為 12.5MHZ(f_ftm = f_busclk / prescaler)
  22.    FTM0_OUTMASK = 0xAF;//打開對應PWM輸出通道CH0與CH2
  23.    FTM0_CNTIN = 0;//FTMCNT的初始值寄存器,設置為0
  24.    FTM0_MOD = 750;//FTMCNT的終了值寄存器,這里即周期數寄存器,這里折合成16.6KHZ 60us周期(f_motor = f_ftm / (FTMMOD - FTMCNTIN))
  25.    FTM0_C1V =  0;//FTMCNT的輸出比較值寄存器,這里即占空比寄存器,初始化為0,即空PWM輸出 !!!C0V與C1V分別控制正反轉,絕對不允許同時輸出PWM
  26.    FTM0_C3V =  0;//FTMCNT的輸出比較值寄存器,這里即占空比寄存器,初始化為0,即空PWM輸出
  27.    FTM0_MODE &= ~FTM_MODE_FTMEN_MASK;//啟動FTM0
  28.    FTM0_CNT = 0;//初始化FTM0計數器
  29.    FTM_enablePWMCh(FTM0, 0, 0, 750, 0);//電機L1
  30.    FTM_enablePWMCh(FTM0, 2, 0, 750, 0);//電機R1
  31.    FTM_enablePWMCh(FTM0, 4, 0, 750, 0);//電機R2
  32.    FTM_enablePWMCh(FTM0, 6, 0, 750, 0);//電機L2

  33. }

  34. /*******************************************************************************
  35. * 函數名稱: QUAD_Init                          
  36. * 描    述:設置正交解碼模塊                                            
  37. *******************************************************************************/
  38. void QUAD_Init(void)
  39. {
  40.   GPIO_SetPinMod(PORTA, 12, 7);                      // 配置相應引腳的功能號,FTM1_QD_PHA
  41.   GPIO_SetPinMod(PORTA, 13, 7);                      // 配置相應引腳的功能號,FTM1_QD_PHB
  42.   GPIO_SetPinMod(PORTB, 18, 6);                      // 配置相應引腳的功能號,FTM2_QD_PHA
  43.   GPIO_SetPinMod(PORTB, 19, 6);                      // 配置相應引腳的功能號,FTM2_QD_PHB
  44.   
  45.   FTM_initQUAD(FTM1, 0, 0, 65535);                   // 配置正交解碼模塊參數
  46.   FTM_initQUAD(FTM2, 0, 0, 65535);
  47.   
  48.   FTM_enableQUAD(FTM1);                              // 使能正交解碼
  49.   FTM_enableQUAD(FTM2);
  50. }
  51. /****************************************************************
  52. 功能:ADC初始化
  53. 形參:void
  54. 返回值:void
  55. *****************************************************************/
  56. void ADC_Init(void)
  57. {
  58.   GPIO_SetPinMod(PORTE,18,0);//PORTE,0,1,2,3特殊功能號0對應AD采集功能
  59.   GPIO_SetPinMod(PORTE,19,0);
  60.   GPIO_SetPinMod(PORTE,24,0);
  61.   GPIO_SetPinMod(PORTE,25,0);
  62.   SIM_SCGC6 |= SIM_SCGC6_ADC0_MASK;//ADC0時鐘門開啟
  63.   ADC0_CFG1 |= ADC_CFG1_ADIV(2) + ADC_CFG1_MODE(2)+ ADC_CFG1_ADICLK(0);        //ADC時鐘2分頻f_adcclk = f_bus / 2 = 25Mhz,單端輸入,十位精度
  64.   ADC0_CFG2 &= ~(ADC_CFG2_MUXSEL_MASK);//選中A組
  65.   ADC0_SC3 |=  ADC_SC3_AVGE_MASK + ADC_SC3_AVGS(2);//16次采樣硬件求平均
  66.   ADC0_SC1A &= ~(ADC_SC1_AIEN_MASK);//中斷使能關閉
  67.   ADC0_SC1A &= ~(ADC_SC1_DIFF_MASK);//采用單端采樣方式
  68.   ADC_CFG2_REG(ADC0) &= ~ADC_CFG2_MUXSEL_MASK;
  69. }
  70. /****************************************************************
  71. 功能:PIT初始化
  72. 形參:void
  73. 返回值:void
  74. *****************************************************************/
  75. void PIT_Init(void)
  76. {
  77.   SIM_SCGC6 |= SIM_SCGC6_PIT_MASK;//開啟PIT時鐘門 ,PIT時鐘源為BUSCLK,50MHZ
  78.   PIT_TCTRL0 &= ~PIT_TCTRL_TEN_MASK;//先關閉時鐘
  79.   PIT_MCR &= ~(PIT_MCR_MDIS_MASK);//打開PIT
  80.   PIT_LDVAL0 = 50000;//PIT計數器裝載值寄存器,這里即1ms間隔中斷,f_pit_interrupt = f_pitclk / ldval
  81.   PIT_TCTRL0 |= PIT_TCTRL_TIE_MASK ;//打開PIT溢出中斷
  82.   EnableInt_Kinetis(68);//開啟對應的中斷
  83.   SetIntPri_Kinetis(68,0);//置中斷優先級0
  84.   PIT_TCTRL0 |= PIT_TCTRL_TEN_MASK;//打開PIT時鐘
  85. }
  86. /****************************************************************
  87. 功能:撥碼盤初始化
  88. 形參:void
  89. 返回值:void
  90. *****************************************************************/
  91. void Dial_Init(void)
  92. {
  93.   GPIO_SetPinMod(PORTC, 14, 1);//撥碼左1
  94.   GPIO_SetPinMod(PORTC, 15, 1);//撥碼左2
  95.   GPIO_SetPinMod(PORTC, 16, 1);//撥碼右2
  96.   GPIO_SetPinMod(PORTC, 17, 1);//撥碼右1
  97.   GPIO_SetPinDir(PORTC, 14, 0);
  98.   GPIO_SetPinDir(PORTC, 15, 0);
  99.   GPIO_SetPinDir(PORTC, 16, 0);
  100.   GPIO_SetPinDir(PORTC, 17, 0);
  101. }
  102. /****************************************************************
  103. 功能:管腳初始化
  104. 形參:void
  105. 返回值:void
  106. *****************************************************************/
  107. void GPIO_Port_Init(void)
  108. {
  109.   //配置為GPIO功能的示例
  110.   SIM_SCGC5 |= SIM_SCGC5_PORTD_MASK;//打開GPIO對應時鐘門,各模塊時鐘門沖突不用考慮,其他時鐘門優先于GPIO時鐘門
  111.   PORTD_PCR0 |= PORT_PCR_MUX(1);
  112. }
  113. /****************************************************************
  114. 功能:系統初始化
  115. 形參:void
  116. 返回值:void
  117. *****************************************************************/
  118. void System_Init(void)
  119. {
  120.   GPIO_Port_Init();
  121.   I2C_Driver_Init();
  122.   L3G4200D_Driver_Init();
  123.   MMA7455_Driver_Init();
  124.   Motor_Init();
  125.   QUAD_Init();
  126.   ADC_Init();
  127.   PIT_Init();
  128.   Dial_Init();
  129. }
  130. /**********************************************************************************
  131. 功能:        AD讀通道,存入目標地址
  132. 形參:adc ADC模塊,如ADC0,ADC1;channel ADC通道;result 返回值指針
  133. 返回值:void
  134. **********************************************************************************/
  135. void ADC_ReadChannel(ADC_MemMapPtr adc,int8u_t channel, int16u_t * result)
  136. {
  137.   int32u_t readReg = 0;
  138.   
  139.   readReg = ADC_SC1_REG(adc,0);
  140.   readReg &= ~ADC_SC1_ADCH_MASK;
  141.   readReg |= ADC_SC1_ADCH(channel);
  142.   ADC_SC1_REG(adc,0) = readReg;//設置ADC采樣通道
  143.   
  144.   while(!(ADC_SC1_REG(adc,0)&ADC_SC1_COCO_MASK));//等待ADC轉換結束
  145.   *result = ADC_R_REG(adc,0);//讀取ADC結果寄存器
  146. }

  147. /*************************************主函數***********************************/
  148. void main(void)
  149. {
  150.   System_Init();//系統初始化
  151.   EnableInterrupts();//開總中斷
  152.   //GPIO_SetPinMod(PORTB,2,1);//PORTB,2,3特殊功能號2對應I2C功能
  153.   //GPIO_SetPinMod(PORTB,3,1);
  154.   //GPIO_SetPinDir(PORTB,2,1);
  155.   //GPIO_SetPinDir(PORTB,3,1);


  156.   while (1)
  157.   {
  158.     Zeroth_bit   = GPIO_get(PORTC, 17);//讀取撥碼盤狀態
  159.     First_bit    = GPIO_get(PORTC, 16);
  160.     Second_bit   = GPIO_get(PORTC, 15);
  161.     Third_bit    = GPIO_get(PORTC, 14);
  162. ……………………

  163. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
10屆省賽直立電磁程序-K10.zip (6.09 MB, 下載次數: 112)




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

使用道具 舉報

沙發
ID:323551 發表于 2018-5-6 16:24 | 只看該作者
666感謝樓主分享
回復

使用道具 舉報

板凳
ID:332282 發表于 2018-5-21 17:43 | 只看該作者
感謝分享 好東西!!!
回復

使用道具 舉報

地板
ID:408361 發表于 2018-10-13 10:56 | 只看該作者
新手,學習學習啊~~~~~~~~~~~··
回復

使用道具 舉報

5#
ID:459450 發表于 2019-1-1 18:19 | 只看該作者
謝謝樓主分享~
回復

使用道具 舉報

6#
ID:483530 發表于 2019-3-3 08:28 | 只看該作者
好東西,謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 高清视频一区二区三区 | 超碰97人人人人人蜜桃 | 男人的天堂亚洲 | 色婷婷综合网 | 在线观看一区 | 国产精品久久久久久久久图文区 | 国内精品伊人久久久久网站 | 国产乱码精品一区二区三区忘忧草 | 欧美黄色片 | 一区精品国产欧美在线 | 日韩欧美三区 | 91视频大全 | 成人国产在线视频 | 国产不卡在线 | 一区二区三区国产 | 蜜桃视频在线观看免费视频网站www | 在线观看av中文字幕 | 日本高清不卡视频 | 亚洲精品中文在线 | 91av免费版 | 国产免费自拍 | 亚洲色图综合网 | 一级黄色毛片子 | 人人人人干 | 日本a∨精品中文字幕在线 亚洲91视频 | 欧美a√| 久久久九九九九 | 91精品国产综合久久久久久丝袜 | 亚洲一级二级三级 | 日本天天操 | 午夜精品久久久久久久星辰影院 | 久久精品一区二区视频 | 欧美一区二区免费 | 国产精品久久久 | 国产一区二区三区免费 | 国产一区二区在线视频 | 亚洲国产成人精品女人久久久 | 欧美天堂一区 | 日韩资源 | 超碰在线亚洲 | 国产91黄色 |