| 전자부품 데이터시트 검색엔진 |
|
HCS12 데이터시트(PDF) 345 Page - Freescale Semiconductor, Inc |
|
|
|||||||||||||||||||||||||||||
HCS12 데이터시트(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 |
|
링크 URL |
| ALLDATASHEET 가 귀하에 도움이 되셨나요? [ DONATE ] |
Alldatasheet는? | 광고문의 | 운영자에게 연락하기 | 개인정보취급방침 | 링크 투 데이터시트 | 링크교환 | 제조사별 검색 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 |