欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 使用ATmega8單片機(jī)時(shí)鐘8MHz控制舵機(jī) [打印本頁]

作者: taotie    時(shí)間: 2023-8-31 23:09
標(biāo)題: 使用ATmega8單片機(jī)時(shí)鐘8MHz控制舵機(jī)
rem Main.bas file generated by New Project wizard
rem
rem Created:   周三 8月 30 2023
rem Processor: ATmega8
rem Compiler:  BASCOM-AVR

rem Write your code here

' 使用8MHz的ATmega8時(shí)鐘來控制伺服電機(jī)。
'     信號(hào)周期=50Hz(20mS)
'        脈沖范圍=1.5mS±0.5mS(1mS~2mS)
'        輸出端口PB2
'  (1)使用預(yù)分頻器將時(shí)鐘8MHz分頻1/8。8,000,000 Hz÷8=1000,000 Hz
'  (2) 使用比較器A[OCR1A]進(jìn)行1/2500分頻。1000,000Hz÷50Hz=20000計(jì)數(shù)-1
'  (3)使用比較器B[OCR1B],將脈沖寬度從999到2000改變?yōu)? mS到2 mS。

$regfile = "m8Def.dat"                                    
$crystal = 8000000
$hwstack = 40
$swstack = 40
$framesize = 40
Config Portb.2 = Output        ' 將脈沖輸出端口OC1B設(shè)置為輸出
Config Timer1 = Pwm , Prescale = 8 , Clear Timer = 1 , Compare B Pwm = Clear Up
Set Tccr1a.wgm11        '高速PWM模式。(TOP=OCR1A)
Set Tccr1b.wgm13        ' 高速PWM模式。(TOP=OCR1A)
Compare1a = 19999        ' 1000,000Hz÷50Hz=20000計(jì)數(shù)-1  (19999*1μS約等于20ms)
Dim a As Byte        '循環(huán)計(jì)數(shù)

Dim pw_count As word        ' 脈沖寬度計(jì)數(shù)。(初始值)1個(gè)計(jì)數(shù)為1μS。
'        '
Do        
'舵機(jī)跳躍式動(dòng)作反復(fù)3次
do
incr a          ' 每次循環(huán)計(jì)數(shù) a=a+1
Compare1b = 1499        ' 脈沖寬度(0度時(shí)計(jì)數(shù)值)。1個(gè)計(jì)數(shù)為1μS。1*1499為伺服電機(jī)的中性位置——1.5mS
Wait 1
Compare1b = 1499+501  ' 脈沖寬度(+90度時(shí)計(jì)數(shù)值)。1個(gè)計(jì)數(shù)為1μS。1*20000為伺服電機(jī)的+90位置——2.0mS
Wait 1
Compare1b = 1499-500 ' 脈沖寬度(-90度時(shí)計(jì)數(shù)值)。1個(gè)計(jì)數(shù)為1μS。1*999為伺服電機(jī)的-90位置——1.0mS
Wait 1
loop until a=3   '3次后退出循環(huán)
a=0              '循環(huán)計(jì)數(shù)歸零

'舵機(jī)緩慢增加或減少(+90度到-90度來回?cái)[動(dòng))
For pw_count = 999 To 2000         ' 將脈沖寬度變化至1 mS至2 mS。
Compare1b = pw_count        ' 設(shè)置脈沖寬度。
Waitms 5        ' 等待時(shí)間。
Next pw_count        '
Waitms 500   '為看清顯示設(shè)置的等待

For pw_count = 2000 To 999 Step -1        ' 脈沖寬度從2mS變化到1mS
Compare1b = pw_count        ' 設(shè)置脈沖寬度。
Waitms 5        ' 等待時(shí)間。
Next pw_count        '
Waitms 500   '為看清顯示設(shè)置的等待
Loop        '

End        ' 程序結(jié)束。

仿真如下:




作者: Highnose    時(shí)間: 2023-9-2 13:24
BASCOM-AVR 對舵機(jī)的控制 不太達(dá)標(biāo),勉強(qiáng)可用




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1