|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
這段程序沒看懂。 |
| 作者:gsypuma 欄目:DSP技術(shù) |
我做2407控制步進(jìn)電機(jī),看了一個(gè)說是2407控制步進(jìn)電機(jī)的程序。 有這樣的一段沒看懂,高手指點(diǎn)一下了。 StepMotor: call fDelay lacc PADATDIR and #STEPMASK or #step1 sacl PADATDIR call fDelay lacc PADATDIR and #STEPMASK or #step2 sacl PADATDIR call fDelay lacc PADATDIR and #STEPMASK or #step3 sacl PADATDIR call fDelay lacc PADATDIR and #STEPMASK or #step4 sacl PADATDIR b StepMotor ret |
| 2樓: | >>參與討論 |
| 作者: luyinkai 于 2006/4/7 10:25:00 發(fā)布:
應(yīng)該是分步控制PAx輸出邏輯電平功能 應(yīng)該是分步控制PAx輸出邏輯電平功能,關(guān)鍵要看常數(shù)#STEPMAS,#step1-4值是多少 |
|
| 3樓: | >>參與討論 |
| 作者: tjsheep 于 2006/4/7 10:26:00 發(fā)布:
大概是這樣 用pa口做步進(jìn)電機(jī)驅(qū)動(dòng)口,然后每步先延時(shí)fdelay,然后設(shè)置pa口的狀態(tài),然后輸出,一共4拍一個(gè)周期 |
|
| 4樓: | >>參與討論 |
| 作者: gsypuma 于 2006/4/7 10:55:00 發(fā)布:
哦! 樓上說,一共4拍一個(gè)周期是什么意思? |
|
| 5樓: | >>參與討論 |
| 作者: gsypuma 于 2006/4/7 11:03:00 發(fā)布:
全部的程序 全部的程序在這呢,我感覺就是在哪里設(shè)置寄存器呢,也沒什么邏輯的關(guān)系呀,怎么就可以控制電機(jī)了呢,還是這個(gè)只能發(fā)出一個(gè)簡單的控制脈沖,而不涉及到的參數(shù)的改變? ;******************************************************* ; File NAME:PWM.asm ;******************************************************* .title "PWM" .include LF2407.inc .include CPU.inc .include GPIO.inc ;******************************************************* TxdPtr: .usect "data", 8 RxdPtr: .usect "data", 8 .data counterValue .byte 1 ;******************************************************* .def _c_int0 .def GIsr2 .ref Pvect ;******************************************************* ; 主程序開始 .text _c_int0: call fSysInit ldp #DP_PF2 splk #MCRAV, MCRA splk #MCRBV, MCRB splk #7f01h, PADATDIR splk #0808h, PBDATDIR ; splk #80h, EVAIMRA ; splk #0ffffh, EVAIFRA ; splk #0, GPTCONA ; splk #177h, T1PR ; splk #0, T1CNT ; splk #0164ch, T1CON ; clrc INTM ;wait: ; nop ; b wait ; call fSciInit ; call evaPwmInit Main: ldp #0000h LoopMain: ldp #00e1h call StepMotor b LoopMain ;******************************************************* evaPwmInit: ; ldp #DP_PF2 ; 指向 7080h~7100h lacl MCRA or #PWMMCR ; PA.1~PA.4配置為PWM輸出 sacl MCRA ldp #DP_EVA ; splk #0ffffh, EVAIFRA ; 清除EVA全部中斷標(biāo)志 splk #0666h, ACTRA ; PWM2、4低有效,PWM1、3高有效 splk #00h, DBTCONA ; 不使能死區(qū)控制 splk #10h, CMPR1 ; 設(shè)置比較初值PWM1高電平占50/60,低電平上10/60 splk #20h, CMPR2 ; 設(shè)置PWM3、4的比較寄存器 splk #60h, T1PR ; 設(shè)置定時(shí)器1周期寄存器,即PWM周期為60個(gè)CPU時(shí)鐘周期 splk #0a600h, COMCONA ; 使能比較操作 splk #0, T1CNT splk #41h, GPTCONA ; TCOMPOE=1, T1PIN=01 splk #080h, EVAIMRA ; 通用定時(shí)器1使能 splk #174eh, T1CON ; TMODE=10連續(xù)增計(jì)數(shù)模式,TPS=111預(yù)分頻為128 ; TENABLE=1定時(shí)器計(jì)數(shù)使能,TCLKS=00內(nèi)部時(shí)鐘 ; TECMPR=1定時(shí)器1比較使能,SELT1PR=0 clrc INTM ; 開總中斷 ret ;******************************************************* StepMotor: call fDelay lacc PADATDIR and #STEPMASK or #step1 sacl PADATDIR c |
|
| 6樓: | >>參與討論 |
| 作者: gsypuma 于 2006/4/8 19:02:00 發(fā)布:
高手幫忙! |
|
| 7樓: | >>參與討論 |
| 作者: tjsheep 于 2006/4/10 9:57:00 發(fā)布:
設(shè)置寄存器,就是用來控制端口的 |
|
| 8樓: | >>參與討論 |
| 作者: gsypuma 于 2006/4/10 13:43:00 發(fā)布:
也就是說設(shè)置好寄存器后,上電后就有預(yù)想的波形輸出? 我還再繼續(xù)的看,它到底要輸出什么樣的波形。 |
|
| 9樓: | >>參與討論 |
| 作者: lcy323 于 2006/4/10 13:47:00 發(fā)布:
ok 輸出脈沖啊 |
|
| 10樓: | >>參與討論 |
| 作者: gsypuma 于 2006/4/10 16:19:00 發(fā)布:
那是不是這樣? 輸出的是設(shè)置比較初值PWM1高電平占50/60,低電平上10/60的脈沖? 但我沒看懂sci接口設(shè)置的那部分是什么意思? |
|
| 11樓: | >>參與討論 |
| 作者: tjsheep 于 2006/4/10 23:01:00 發(fā)布:
呵呵,sci那部分就是設(shè)置串口通訊的格式 |
|
| 12樓: | >>參與討論 |
| 作者: gsypuma 于 2006/4/11 8:37:00 發(fā)布:
這樣呀! 那也就是說,輸出脈沖是一種串口通訊另了。 |
|
| 13樓: | >>參與討論 |
| 作者: tjsheep 于 2006/4/11 13:41:00 發(fā)布:
呵呵,不明白你說的 |
|
| 14樓: | >>參與討論 |
| 作者: gsypuma 于 2006/4/11 16:13:00 發(fā)布:
我的意思 程序中哪里用到串口通訊了,為什么要設(shè)置它的格式呢?不就是要產(chǎn)生脈沖嗎?和串口通訊是什么關(guān)系呀? |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |