如何用汇编语言实现PID控制器代码来控制直流电动机?

时间:2018-12-23 17:34:11

标签: assembly controller microcontroller avr pid-controller

我为PID控制器编写了一些汇编代码(现在只有PI),并且需要添加一些行以用于控制DC电动机。我在项目中使用的是Atmega8。

所以它应该在某个时刻起作用(我不知道确切的时刻),我应该用积分器做点什么,汇编语言中的数组有其他选择吗?

有一个有效的代码,但我需要将其应用于直流电动机。有什么想法我该如何实施?

.def error = R16 
.def need = R17 
.def real = R18 
.def P = R19 
.def delta = R20 
.def time = R21 
.def integral = R22 
.def I = R23 
.def Kp = R24 
.def Ki = R25 
.def controller = R26 
.def prev_error = R27 

ldi need, 10                
ldi real, 8             
ldi Kp, 10              
ldi Ki, 30              
ldi time, 1             
ldi integral, 0             
ldi prev_error, 0           
start: 
    mov error, need 
    sub error, real
    mov P, error
    mul P, Kp
    mov delta, error
    mul delta, time 
    add integral, delta
    mul integral, Ki
    mov I, integral
    mov controller, P
    add controller, I       
    mov prev_error, error   
    rjmp start 
 ret

0 个答案:

没有答案