با سلام
خدمت مهندسای عزیز
دوستان کسی میتونه بگه فرمان فوق چه دستوری میده ؟و aci چیست ؟
و چه زمانی دستور فوق اجرا میشه ؟
درصورت امکان راه نمایی فرمایید
با تشکر
خدمت مهندسای عزیز
دوستان کسی میتونه بگه فرمان فوق چه دستوری میده ؟و aci چیست ؟
کد:
On Aci Capt Nosave On Timer1 Pulse Nosave On Timer0 Tmr0 Nosave
کد:
$regfile = "attiny2313.dat"
$crystal = 20000000
$hwstack = 32
$swstack = 10
$framesize = 40
Config Aci = On , Trigger = Falling
Config Timer0 = Timer , Prescale = 64
Config Timer1 = Timer , Prescale = 64
Stop Timer1
Enable Interrupts
Enable Aci
Enable Timer1
Enable Timer0
On Aci Capt Nosave
On Timer1 Pulse Nosave
On Timer0 Tmr0 Nosave
Config Portd.6 = Output
Config Portd.5 = Output
Portd.5 = 1
Dim Value As Word
Dim Index As Word
Dim Flag1 As Byte
Dim Flag2 As Byte
Dim Flag3 As Byte
Dim T As Word
Dim I As Word
Dim B As Byte
Dim W As Word
Dim J As Single
Dim K As Single
Dim Degree As Single
Declare Sub Transcod
Do
If Flag1 <> 0 Then
Flag1 = 0
Portd.5 = 1
T = I * 256
B = Timer0 : W = B
T = T + W
K = T
Call Transcod
J = K * Degree
T = J
Stop Timer1
Timer1 = 65536 - T
Start Timer1
I = 0
Timer0 = 0
End If
If Flag2 <> 0 Then
Flag2 = 0
Portd.5 = 0
Stop Timer1
End If
If Flag3 <> 0 Then
Flag3 = 0
Incr I
End If
Loop
'fast interruption
Capt:
$asm
Push R31 'save registers
Ldi R31 , 255 'Flag1 = 255
Sts {Flag1} , R31
Pop R31 'Restore
Reti
$end Asm
Return
Pulse:
$asm
Push R31 'save registers
Ldi R31 , 255 'Flag2 = 255
Sts {Flag2} , R31
Pop R31 'Restore
Reti
$end Asm
Return
Tmr0:
$asm
Push R31 'save registers
Ldi R31 , 255 'Flag3 = 255
Sts {Flag3} , R31
Pop R31 'Restore
Reti
$end Asm
Return
Transcod:
'1.6086957E-05*x-0.015086957
Degree = K / 100000
Degree = Degree * 1.6086957
Degree = Degree - 0.015086957
If K >= 12000 Then
Degree = 0.185
End If
'Toggle Portd.6 for tachometer
Return
End
با تشکر


دیدگاه