|
基于kea的直立小車(chē)程序 親手碼的哦
最近在做飛思卡爾智能車(chē)比賽 基于官方方案的程序 完全可跑
逐飛科技KEA庫(kù)的晶振是使用的16M無(wú)源晶振。請(qǐng)大家注意自己的晶振是否與我們的一樣。
下圖展示了如何超頻
0.jpg (91.09 KB, 下載次數(shù): 95)
下載附件
2018-3-25 18:15 上傳
KEA128庫(kù)配置信息
右擊工程(也就是圖中 1 所在的方框),然后選擇 options。
第一步檢查,單片機(jī)的型號(hào)選擇是否正確,根據(jù)自己使用的單片機(jī)進(jìn)行選擇,當(dāng)然如果使用 的單片機(jī)不是例程所支持的話,那么這里設(shè)置為自己使用的單片機(jī)例程也無(wú)法使用的。下圖 展示了如何選擇單片機(jī)型號(hào),這里需要注意的是,由于飛思卡爾公司被 NXP 收購(gòu)了,因此 在新版中沒(méi)有 freescale 選項(xiàng)了,freescale 公司的單片機(jī)歸納在了 NXP 選項(xiàng)下面了。如果有 freescale 選項(xiàng)的就在 freescale 選項(xiàng)下查找
 將 char 釋意成有符號(hào)的類(lèi)型,這個(gè)如 果有特殊需求的可以按照自己的需求 設(shè)置,一般用戶按照?qǐng)D中設(shè)置即可。
路徑包含信息與宏定義設(shè)置 包含目錄信息
$PROJ_DIR$\..\..\USER\inc
$PROJ_DIR$\..\..\USER\src
$PROJ_DIR$\..\..\..\Libraries\startup\CoreSupport
$PROJ_DIR$\..\..\..\Libraries\startup\DeviceSupport\IAR-ARM
$PROJ_DIR$\..\..\..\Libraries\startup\DeviceSupport
$PROJ_DIR$\..\..\..\Libraries\drives\inc
$PROJ_DIR$\..\..\..\Libraries\seekfree
$PROJ_DIR$\..\..\..\Libraries\startup\DeviceSupport 宏定義信息(這里的宏定義用于預(yù)編譯 處理)
_DLIB_FILE_DESCRIPTOR
$PROJ_DIR$\KEA128.icf


單片機(jī)源程序如下:
- /*********************************************************************************************************************
- * COPYRIGHT NOTICE
- * Copyright (c) 2017,逐飛科技
- * All rights reserved.
- * 以下所有內(nèi)容版權(quán)均屬逐飛科技所有,未經(jīng)允許不得用于商業(yè)用途,
- * 歡迎各位使用并傳播本程序,修改內(nèi)容時(shí)必須保留逐飛科技的版權(quán)聲明。
- *
- * @file main
- * @author 逐飛科技(QQ3184284598)
- * @version v2.0
- * @Software IAR 7.7 or MDK 5.23
- * @Target core S9KEA128AMLK
- ********************************************************************************************************************/
- #include "headfile.h"
-
- #define FallAngleBack 75
- #define FallAngleFront -15
-
-
- int main(void)
- { uint8 data[3];
-
- get_clk(); //獲取時(shí)鐘頻率 必須執(zhí)行
- ControlInit();
-
- key_init();//初始化按鍵
- IIC_init();
- InitMPU6050(); //初始化陀螺儀
- // OLED_Init();//OLED初始化
- uart_init(uart2,115200);
- //中斷初始化
- // uart_rx_irq_en(uart2);
-
-
-
- //初始化編碼器
-
- ftm_count_init(ftm0); //對(duì)E0引腳輸入的脈沖進(jìn)行計(jì)數(shù) E0接編碼器LSB
- gpio_init(H7,GPI,0); //用于判斷方向 C5接編碼器DIR
- port_pull(H7); //IO上拉
-
- ftm_count_init(ftm1); //對(duì)E7引腳輸入的脈沖進(jìn)行計(jì)數(shù) E7接編碼器LSB
- gpio_init(H5,GPI,0); //用于判斷方向 H5接編碼器DIR
- port_pull(H5); //IO上拉
- //初始化PWM
- //PWM通道與引腳對(duì)應(yīng)關(guān)系查看KEA128_port_cfg.h文件內(nèi)的FTM2_CH0_PIN等宏定義
- //桌大大的推文中,建議電磁組電機(jī)頻率選用13K-17K
- //占空比精度可以在KEA128_ftm.h文件內(nèi)找到FTM2_PRECISON宏定義進(jìn)行設(shè)置
- ftm_pwm_init(ftm2,ftm_ch2,15000,0);//初始化PWM頻率為15K,占空比為0
- ftm_pwm_init(ftm2,ftm_ch3,15000,0);
- ftm_pwm_init(ftm2,ftm_ch0,15000,0);
- ftm_pwm_init(ftm2,ftm_ch1,15000,0);
-
- //這里一共四個(gè)通道,本歷程使用通道2與通道3控制左電機(jī)的正反轉(zhuǎn),剩下4和5通道控制右電機(jī)的正反轉(zhuǎn)
-
-
- pit_init_ms(pit0,1); //定時(shí)1個(gè)后中斷
- set_irq_priority(PIT_CH0_IRQn,1);
- enable_irq(PIT_CH0_IRQn);
- EnableInterrupts;
-
- while(1)
- {
-
- // data[0]=(int)ACC_Angle;
- // data[1]=(int)Car_Angle;
- // data[2]=(int)Angle_Speed;
-
- /*** if((int)Car_Angle>FallAngleBack||(int)Car_Angle<FallAngleFront)
- {DisableInterrupts;
- ftm_pwm_duty(ftm2,ftm_ch3,0);
- ftm_pwm_duty(ftm2,ftm_ch2,0 );
- ftm_pwm_duty(ftm2,ftm_ch1,0 );
- ftm_pwm_duty(ftm2,ftm_ch0,0 );
- }***/
-
-
-
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
靜止3.23.rar
(6.91 MB, 下載次數(shù): 148)
2018-3-25 17:31 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|