Fórum témák
» Több friss téma |
Fórum » pic 16bit
Témaindító: norcseszto, idő: Okt 18, 2005
Témakörök:
Sziasztok!
Szükségem lenne,egy 16/16=16 bites kipróbált osztó rutinra.A proci 16F84. Sajnos a Microchip oldalárol letöltöttek közül,csak 16/8 bites mükszik: Előre is köszi!norcseszto
szerintem egyszerű a helyzet, következő kép képzelem
ez a verzió a várakozó rutint 2 a 16-on * futattja... másik verzió pl. megszakításba Inicializálás mint előbb két temp reg és törlöd őket
szerintem erre gondoltál... ha tudok még segíteni itt vagyok.
bocsi az a sor a másodikban, hogy
btfsc temp1,7 az igazából btfss temp1,7 bocsika
Van-e teljesen leírt osztó rutinod számomra?
Hali!
Megvan a megoldás! Itt találtam meg! http://www.markworld.com/evaluate16.html UDIV16.ASM MŰKÖDIK MPLAB-ban szimuláltam. Ha valakinek kellene: LIST P=16F84 #INCLUDE "P16F84.INC" __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF cblock 0x0C MpyDiv10 MpyDiv11 MpyDiv20 MpyDiv21 MpyDiv30 MpyDiv31 MpyDiv40 MpyDiv41 Count endc ORG 0 GOTO START ORG 4 START BSF STATUS,RP0 MOVLW B"00011111" MOVWF TRISA MOVLW B"00000000" MOVWF TRISB BCF STATUS,RP0 CALL IND GOTO vege ; Unsigned 16 bit Divide MpyDiv1 by MpyDiv2 ; Return quotient in MpyDiv3 ; Return remainder in MpyDiv4 ; Requires 391 cycles including retlw ; Execution time is independent of data values. ; IND MOVLW .136 ; TESZT MOVWF MpyDiv10 ; 9-16.BIT MOVLW .184 ; MOVWF MpyDiv11 ; 0-8.BIT MOVLW .0 ; MOVWF MpyDiv20 ; MOVLW .70 ; MOVWF MpyDiv21 ; uDiv16 movlw d"16" movwf Count clrf MpyDiv30 ;quotient clrf MpyDiv31 clrf MpyDiv40 ;remainder clrf MpyDiv41 udiv1 bcf STATUS,C rlf MpyDiv11,F rlf MpyDiv10,F rlf MpyDiv41,F rlf MpyDiv40,F movf MpyDiv20,W subwf MpyDiv40,W btfss STATUS,Z goto udiv2 movf MpyDiv21,W subwf MpyDiv41,W btfss STATUS,C goto udiv6 movwf MpyDiv41 movf MpyDiv20,W subwf MpyDiv40,F goto udiv3 udiv2 btfss STATUS,C goto udiv5 movf MpyDiv21,W subwf MpyDiv41,F btfss STATUS,C decf MpyDiv40,F movf MpyDiv20,W subwf MpyDiv40,F udiv3 bsf STATUS,C udiv4 rlf MpyDiv31,F rlf MpyDiv30,F decfsz Count,F goto udiv1 retlw 0 udiv5 goto udiv7 udiv6 nop udiv7 goto udiv8 udiv8 goto udiv4 vege goto vege END
Örömömben majdnem elfelejtettem:
köszi a segítséget mspike
Igazán nincs mit.
|
Bejelentkezés
Hirdetés |