新聞中心

        EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 在HCS08系列MCU上用軟件實(shí)現(xiàn)儀表步進(jìn)電機(jī)的驅(qū)動

        在HCS08系列MCU上用軟件實(shí)現(xiàn)儀表步進(jìn)電機(jī)的驅(qū)動

        作者:傅志強(qiáng) 飛思卡爾半導(dǎo)體成都分公司 時間:2010-05-21 來源:電子產(chǎn)品世界 收藏

          

        本文引用地址:http://www.104case.com/article/109228.htm

          本為應(yīng)用程序提供的接口函數(shù)有三個:

          1.InitStepper:初始化函數(shù),對驅(qū)動所用到的I/O口和定時器進(jìn)行設(shè)置,并讓轉(zhuǎn)到初始位置——使儀表的指針指到零點(diǎn)的位置。

          函數(shù)原型:void InitStepper(void);

          參數(shù):無;

          返回值:無。

          2.SetStepperTarget:設(shè)定的目標(biāo)位置,也就是要讓儀表的指針轉(zhuǎn)到哪個位置(以相對于零點(diǎn)的角度來表示),整個轉(zhuǎn)動的過程(如需要轉(zhuǎn)多少步,往哪個方向轉(zhuǎn)等)應(yīng)用程序無需知道,而且應(yīng)用程序可以指定任意目標(biāo)位置。

          函數(shù)原型:void SetStepperTarget(word wTargetDegree);

          參數(shù):word wTargetDegree,目標(biāo)位置相對于零點(diǎn)的角度,其值是以(1/12)度(等于微步方式下的步距)為單位的;

          返回值:無。

          3.GetStepperCurrent:得到步進(jìn)電機(jī)的當(dāng)前位置。

          函數(shù)原型:word GetStepperCurrent(void);

          參數(shù):無;

          返回值:返回儀表的指針當(dāng)前所指的位置(以相對于零點(diǎn)的角度來表示),其值也以(1/12)度(等于微步方式下的步距)為單位。

          另外,在頭文件Stepper.h中定義了選擇驅(qū)動方式的宏,使用者修改宏定義就可以選擇分步驅(qū)動方式或微步驅(qū)動方式,如下:

          #define STEPPER_PARTIAL_MODE 0

          #define STEPPER_MICRO_MODE !STEPPER_PARTIAL_MODE

          如前所述,驅(qū)動信號的變化速度不能太快,每次變化后都必須保持一段時間不變,為了讓占用的CPU的處理時間更少,就需要用到一個定時器。除了上面的三個接口函數(shù)外,驅(qū)動程序的其余部分都在定時器的中斷服務(wù)程序中運(yùn)行。

          在驅(qū)動程序中,用兩個靜態(tài)變量來保存步進(jìn)電機(jī)的目標(biāo)位置和當(dāng)前位置,其值是到零點(diǎn)的步數(shù)。定時器中斷由SetStepperTarget函數(shù)使能,在中斷服務(wù)程序中根據(jù)目標(biāo)位置和當(dāng)前位置的差值來決定步進(jìn)電機(jī)轉(zhuǎn)動的方向和步數(shù),然后根據(jù)選擇的驅(qū)動方式執(zhí)行相應(yīng)的轉(zhuǎn)動程序。

        pwm相關(guān)文章:pwm是什么




        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 富裕县| 灵川县| 晋州市| 建德市| 寻乌县| 合作市| 新巴尔虎右旗| 西青区| 淮北市| 饶河县| 巩义市| 保靖县| 合江县| 晋宁县| 屏山县| 大邑县| 汉川市| 郑州市| 修水县| 长兴县| 长岭县| 晋中市| 蓝田县| 濮阳市| 沙河市| 大理市| 汤阴县| 勃利县| 杭锦后旗| 弥勒县| 大连市| 邻水| 武邑县| 东方市| 平安县| 肃南| 长春市| 绥宁县| 色达县| 潞西市| 延庆县|