| Electronic Components Datasheet Search |
|
HCS12 Datasheet(PDF) 345 Page - Freescale Semiconductor, Inc |
|
|
|||||||||||||||||||||||||||||
HCS12 Datasheet(HTML) 345 Page - Freescale Semiconductor, Inc |
|
345 / 452 page ![]() S12CPUV2 Reference Manual, Rev. 4.0 Freescale Semiconductor 345 9.3 Example Inference Kernel Figure 9-3 is a complete fuzzy inference kernel written in CPU12 assembly language. Numbers in square brackets are cycle counts for an HCS12 device. The kernel uses two system inputs with seven labels each and one system output with seven labels. The program assembles to 57 bytes. It executes in about 20 µs at an 25-MHz bus rate. The basic structure can easily be extended to a general-purpose system with a larger number of inputs and outputs. Figure 9-3. Fuzzy Inference Engine Lines 1 to 3 set up pointers and load the system input value into the A accumulator. Line 4 sets the loop count for the loop in lines 5 and 6. Lines 5 and 6 make up the fuzzification loop for seven labels of one system input. The MEM instruction finds the y-value on a trapezoidal membership function for the current input value, for one label of the current input, and then stores the result to the corresponding fuzzy input. Pointers in X and Y * 01 [2] FUZZIFY LDX #INPUT_MFS ;Point at MF definitions 02 [2] LDY #FUZ_INS ;Point at fuzzy input table 03 [3] LDAA CURRENT_INS ;Get first input value 04 [1] LDAB #7 ;7 labels per input 05 [5] GRAD_LOOP MEM ;Evaluate one MF 06 [3] DBNE B,GRAD_LOOP ;For 7 labels of 1 input 07 [3] LDAA CURRENT_INS+1 ;Get second input value 08 [1] LDAB #7 ;7 labels per input 09 [5] GRAD_LOOP1 MEM ;Evaluate one MF 10 [3] DBNE B,GRAD_LOOP1 ;For 7 labels of 1 input 11 [1] LDAB #7 ;Loop count 12 [2] RULE_EVAL CLR 1,Y+ ;Clr a fuzzy out & inc ptr 13 [3] DBNE b,RULE_EVAL ;Loop to clr all fuzzy outs 14 [2] LDX #RULE_START ;Point at first rule element 15 [2] LDY #FUZ_INS ;Point at fuzzy ins and outs 16 [1] LDAA #$FF ;Init A (and clears V-bit) 17 [3n+4] REV ;Process rule list 18 [2] DEFUZ LDY #FUZ_OUT ;Point at fuzzy outputs 19 [2] LDX #SGLTN_POS ;Point at singleton positions 20 [1] LDAB #7 ;7 fuzzy outs per COG output 21 [7b+4] WAV ;Calculate sums for wtd av 22 [11] EDIV ;Final divide for wtd av 23 [1] TFR Y,D ;Move result to A:B 24 [3] STAB COG_OUT ;Store system output * ***** End |
|
Link URL |
| Does ALLDATASHEET help your business so far? [ DONATE ] |
About Alldatasheet | Advertisement | Contact us | Privacy Policy | Link to Datasheet | Link Exchange | Manufacturer List All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |