找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

使用ATmega8單片機時鐘8MHz控制舵機

[復制鏈接]
跳轉到指定樓層
樓主
ID:342822 發(fā)表于 2023-8-31 23:09 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
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時鐘來控制伺服電機。
'     信號周期=50Hz(20mS)
'        脈沖范圍=1.5mS±0.5mS(1mS~2mS)
'        輸出端口PB2
'  (1)使用預分頻器將時鐘8MHz分頻1/8。8,000,000 Hz÷8=1000,000 Hz
'  (2) 使用比較器A[OCR1A]進行1/2500分頻。1000,000Hz÷50Hz=20000計數(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設置為輸出
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計數(shù)-1  (19999*1μS約等于20ms)
Dim a As Byte        '循環(huán)計數(shù)

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

'舵機緩慢增加或減少(+90度到-90度來回擺動)
For pw_count = 999 To 2000         ' 將脈沖寬度變化至1 mS至2 mS。
Compare1b = pw_count        ' 設置脈沖寬度。
Waitms 5        ' 等待時間。
Next pw_count        '
Waitms 500   '為看清顯示設置的等待

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

End        ' 程序結束。

仿真如下:



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

使用道具 舉報

沙發(fā)
ID:830831 發(fā)表于 2023-9-2 13:24 | 只看該作者
BASCOM-AVR 對舵機的控制 不太達標,勉強可用
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表