File: throttle_set_lowpass.asm

package info (click to toggle)
avra 1.2.3a-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 1,384 kB
  • ctags: 1,092
  • sloc: ansic: 6,329; asm: 747; pascal: 624; makefile: 82; sh: 5
file content (69 lines) | stat: -rwxr-xr-x 3,322 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
;throttle_set_lowpass.asm

.NOLIST

;  ***************************************************************************************
;  * PWM MODEL RAILROAD THROTTLE                                                          *
;  *                                                                                      *
;  * WRITTEN BY:  PHILIP DEVRIES                                                          *
;  *                                                                                      *
;  *  Copyright (C) 2003 Philip DeVries                                                   *
;  *                                                                                      *
;  *  This program is free software; you can redistribute it and/or modify                *
;  *  it under the terms of the GNU General Public License as published by                *
;  *  the Free Software Foundation; either version 2 of the License, or                   *
;  *  (at your option) any later version.                                                 *
;  *                                                                                      *
;  *  This program is distributed in the hope that it will be useful,                     *
;  *  but WITHOUT ANY WARRANTY; without even the implied warranty of                      *
;  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                       *
;  *  GNU General Public License for more details.                                        *
;  *                                                                                      *
;  *  You should have received a copy of the GNU General Public License                   *
;  *  along with this program; if not, write to the Free Software                         *
;  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA           *
;  *                                                                                      *
;  ***************************************************************************************
.LIST

.ifdef   THROTTLE_LOWPASS_ENABLED
   ;*****************************************************************
   ;* A transversal low pass filter                                  *
   ;*                                                                *
   ;* This is copied from throttle_backemf.asm.                      *
   ;* See the documentation there.                                   *
   ;*****************************************************************
   HILOCAL1    throttle_lo             ; assign local variables
   HILOCAL2    throttle_hi

   mov   throttle_lo,throttle_set
   clr   throttle_hi 

   ;****
   ;* 1. Add in cumulative previous throttle
   ;****
   add   throttle_lo,throttle_lo_prev        ; Add in scaled previous samples
   adc   throttle_hi,throttle_hi_prev        ;

   ;****
   ;* 2.
   ;****
   mov   throttle_lo_prev,throttle_lo        ; Store new value
   mov   throttle_hi_prev,throttle_hi        ; Store new value

   ;****
   ;* 3. 
   ;****

   B_TEMPLOCAL _lowpass_lo_byte
   ldi   _lowpass_lo_byte, throttle_lowpass_gain
   rcall DIVIDE_16_SIMPLE

   ;****
   ;* 4.
   ;****
   sub   throttle_lo_prev,throttle_lo
   sbc   throttle_hi_prev,throttle_hi

   mov   throttle_set,throttle_lo
.endif ;THROTTLE_LOWPASS_FILTER