Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint32_t error[3];
- uint32_t A[3];
- uint32_t
- uint8_t Kp = 1;
- uint8_t Ki = 1;
- uint8_t Kd = 1;
- const
- A[0] = Kp + Ki*dt + Kd/dt
- A[1] = -Kp - 2*Kd/dt
- A[2] = Kd/dt
- error[2] := 0 // e(t-2)
- error[1] := 0 // e(t-1)
- error[0] := 0 // e(t)
- CT_UART.THR = 'S';
- CT_UART.THR = 'N';
- CT_UART.THR = '\r';
- reference_count = position // initil reading from decoder as unit32
- while (finished = false) {
- error[2] := error[1]
- error[1] := error[0]
- error[0] := (setpoint+reference_count) − measured_value // currentin reading from decoder
- output := output + A[0] * error[0] + A[1] * error[1] + A[2] * error[2]
- sleep(dt)
- if (time +dt > period ){
- refrence_count = position // current reading from decoder.
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement