اطلاعیه

Collapse
No announcement yet.

کمک در رابطه با دستور aci ,nosave avr

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کمک در رابطه با دستور aci ,nosave avr

    با سلام
    خدمت مهندسای عزیز
    دوستان کسی میتونه بگه فرمان فوق چه دستوری میده ؟و 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
    درصورت امکان راه نمایی فرمایید
    با تشکر
    خواستن توانستن است !

    #2
    پاسخ : کمک در رابطه با دستور aci ,nosave avr

    اگه اشتباه نکنم باید مقایسه کننده آنالوگ باشه البته شک دارم
    تو هلپ بسکتم سرچ کنی هست
    عجب روزگاریست...! هیچکس به سکوت آدم نمیرسد،همه منتظرند به داد آدم برسند...!

    دیدگاه

    لطفا صبر کنید...
    X