How change the code from asm to PBPOriginally Posted by paul borgmeier
How change the code from asm to PBPOriginally Posted by paul borgmeier
For the first block of ASM, replace with
PORTA = $10
TRISABUF=$10
OPTION_REG=$37
You need to post the rest of your ASM code in order for us to see how to completely convert the second block (.i.e, where is your delay routine?)
Paul Borgmeier
Salt Lake City, UT
USA
__________________
Originally Posted by paul borgmeier
All the ASM codeCode:FHI VAR BYTE FLO VAR BYTE COUNT1 VAR BYTE TRISABUF VAR BYTE TEMPS VAR BYTE
Code:Asm ;;;;;;;;;;;;;;;;;;;;;;;;;;;; AUTHORIZATION OF COUNTING clrf TMR0 ; RAZ timer bsf _trisabuf,3 ; RA4 in entry and RA3 in entry authorization counting movf _trisabuf,W tris PORTA ;;;;;;;;;;;;;;;;;;;;;;;;;;;; BASE TIME movf _TEMPS,W movwf _COUNT1 dxxx nop decfsz _COUNT1 GoTo dxxx nop nop Call delay Call delay Call delay Call delay Call delay ;;;;;;;;;;;;;;;;;;;;;;;;;;; STOP OF COUNTING bcf _trisabuf,3 ;RA4 in entry and RA3 at Exit to block counting movf _trisabuf,W tris PORTA ;;;;;;;;;;;;;;;;;;;;;;;;;;; RECUPERATION OF THE METERS calcul MOVF TMR0,W ;timer -> work MOVWF _FHI ;work -> FHI 8 bits of weight strong counting clrf _COUNT1 ;handing-over has zero meter Toggle incf _COUNT1,F ;incrementation of the meter bsf PORTA,3 ;RA3 a 1 bcf PORTA,3 ;RA3 a 0 movf TMR0,W ;reading of the timer subwf _FHI,w ;it is looked at if the divider incremente the timer btfsc STATUS,2 ;comparison GoTo Toggle ;if the timer did not incremente one starts again comf _COUNT1,F ;complement with the meter incf _COUNT1,W ;incrementation of the meter movwf _FLO ;work -> FLO 8 bits of weight weak counting GoTo fin ;;;;;;;;;;;;;;;;;;;;;;;;;;; BASE TIME delay movlw 197 ;1ms according to AN592 movwf _COUNT1 nop GoTo $+1 GoTo $+1 dly GoTo $+1 decfsz _COUNT1 GoTo dly Return fin EndAsm
Last edited by savnik; - 22nd November 2006 at 22:35.
Save us to guess what you want to do... AND give us your PIC model.
There's only few hundreds of model.. but who want to guess?
Last edited by mister_e; - 22nd November 2006 at 23:54.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
My problem solved by paul borgmeier.Originally Posted by mister_e
My pic is 16f88.
His schematic shows a F88 but he fixed his code by adding TRISA.0 = 1 (pot on RA1 not RA0) - does not make sense??
Try this for the second block of ASM code
Any second opinions on the conversion?Code:;;;;;;;;;;;;;;;;;;;;;;;;;;;; AUTHORIZATION OF COUNTING TMR0 = 0 TRISABUF.3 = 1 PORTA = TRISABUF ;;;;;;;;;;;;;;;;;;;;;;;;;;;; BASE TIME COUNT1=TEMPS PAUSEUS (COUNT*4+2) PAUSE 5 ;;;;;;;;;;;;;;;;;;;;;;;;;;; STOP OF COUNTING TRISABUF.3=0 PORTA=TRISABUF ;;;;;;;;;;;;;;;;;;;;;;;;;;; RECUPERATION OF THE METERS FHI=TMR0 COUNT1=0 Toggle: COUNT1=COUNT1+1 PORTA.3=1 PORTA.3=0 IF (FHI-TMR0) = 0 THEN Toggle COUNT1=(COUNT1^$FF) FLO=COUNT1+1 ;;;;;;;;;;;;;;;;;;;;;;;;;;; BASE TIME
Savnik, what does your program do?
Paul Borgmeier
Salt Lake City, UT
USA
__________________
Sorry ,the pot is on RA0 (the schematic is wrong)Originally Posted by paul borgmeier
With the first block of asm the frequency meter work.
When i change the second asm with yours code i take error when compile.
When I change the PAUSEUS (COUNT*4+2) with PAUSEUS (COUNT1*4+2) and the Toggle with Toggle1 the code compile , but the frequency on LCD is above 14Mhz the regular (90.6Mhz -> 104.6Mhz)
Now that it is not 2Am, I see that it might be the PAUSEUS line - PAUSEUS has a minimum delay of 24uS when used with a 4 MHz XTAL. I also took "your" comments about the delay loop as being accurate at 1 mS. I will check that as well.
What XTAL speed are you running?
Unfortuantely, it is "Off to Grandma's House" here as it is a major holiday. I will not have a minute to debug until tomorrow night (36 hours from now). As asked before,
Anyone else have an opinion on the ASM to BASIC conversion or want to take a stab at the problem? If not, I will revisit when I return.
Paul Borgmeier
Salt Lake City, UT
USA
__________________
I guess I lied - I do not see an easy solution to the minimum PAUSEUS problem noted above - I am glad it works for you with the ASM blocks.Also, why the ASM? Everything you show is easy in PBP?
Good Luck,
Paul Borgmeier
Salt Lake City, UT
USA
__________________
Bookmarks