64
MFN := (MFN) – 1
quyida keltirilgan.
TRV yuklanmoqda va ishga tushirilmoqda
Dvigatel shinalaridagi boshqaruv kodini ushlab turish uchun zarur bo'lgan vaqtni kechiktirishni
shakllantirish uchun real vaqt taymeridan (TRV) foydalaniladi, u reaksiyaga kirishadi.
F = 1
.def temp = r16;
saqlash reestri
Oxiri
CM := ((CM) + 1)
To'xtatish protsedurasida (Vaqt) TRV qayta ishga tushiriladi va vaqtni kechiktirish tugallanishi
bayrog'i (F) o'rnatiladi, uning asosiy dasturdagi yagona qiymati keyingi boshqaruv aylanishiga imkon
beradi.
.org0; vektorni tiklash
Dvigatelning ma'lum miqdordagi aylanishlari uchun aylanishlar soni inqilob hisoblagichida
(RMS) kuzatiladi, nolga o'rnatilganda vosita to'xtaydi. Tegishli bipolyar step motorini boshqarish
dasturi
Chiqish
Yarim
jmp boshlash
.o'z ichiga "m128def.inc"
Boshqaruv
kodlari qatorini ishga
tushirish, CM := 0, FMS := xx, TRV
uzilishlarini yoqish, TRV bayrog'ini tiklash
(F := 0)
Yo'q
jmp tim
.def bayroqlari = r17; bayroq
registri .def count = r18; nazorat davrlarining
hisoblagichi .def off = r19; nazorat kodi manzili ofset
Ha
Ha
toshib ketishi uzilish orqali amalga oshiriladi.
jmp boshlash
bitta
TRVni qayta
yuklash va ishga tushirish
Guruch. 31. Boshqarish
algoritmi
Yo'q
Joriy boshqaruv kodini tanlang
Boshlash
F := 1
MF = 0
; ramziy nomlarning ta'rifi
bitta
.org 0x14; TCNT2 uzilish vektori
.org 0x14; TCNT2 uzilish vektori
Machine Translated by Google
65
.org
0x30 .db 0xf1, 0xf4, 0xf2, 0xf8; boshqaruv kodlari
qatori .org 0x40 ; ishga tushirish boshlanishi: ldi
temp, 0xff; PORTD ni ddrd, temp out xdiv, temp
chiqarishga sozlash;
start soat ajratuvchi ldi temp, past
(ramend); stack pointer out spl, temp ldi temp, high
(ramend) out sph, temp sei ; global uzilish ldi sonini
yoqish, 0xf0; yuk aylanishi hisoblagichi ldi o'chirilgan,
0x0; nol ofset manzilni boshqarish kodi ldi temp,0x30;
yukni boshqarish kodining massivi bazasi mov zl, temp
ldi temp,0x0 mov zh, temp m1: lsl zl add zl, off; lpm
fetch bajarish
manzilini shakllantirish; R0 chiqish portida
joriy nazorat kodini olish, r0; nazorat kodi chiqishi ldi
temp,0x30; nazorat kodlarini tiklash massiv bazasi mov
zl, temp inc o'chirilgan; ofset ortishi andi off, 0x3; ofset
yaxlitlash ldi temp, 0x40; TCNT2
dan mahalliy uzilishni
yoqish timsk, temp ldi temp,0x5; tccr2 dan TCNT2 ni
ishga tushiring, temp ldi bayroqlari, 0; qayta o'rnatish
vaqti tugashi bayrog'i m2: sbrs bayroqlari, 0; toshib ketish
kutish davri TCNT2 jmp m2 dec soni; cycle counter
decrement
breq fin; sikl hisoblagichini qayta o'rnatish orqali
tugatishga o'tish jmp m1 tim: ldi temp, 0x0; qayta ishga
tushirish va o'chirish TCNT2 dan tcnt2, temp out tccr2, temp
ldi bayroqlari, 0x1; vaqtni kechiktirish bayrog'ini o'rnatish reti
fin: jmp fin
Machine Translated by Google