It reads, Note: To maintain upward compatibility with future PIC16F87XA products, do not use the OPTION and TRIS instructions. So the question, what do I use in place of the TRIS instruction?
It reads, Note: To maintain upward compatibility with future PIC16F87XA products, do not use the OPTION and TRIS instructions. So the question, what do I use in place of the TRIS instruction?
The TRIS Command in question is an assembly level command and not a PBP command.
With the 877, if you write “TRISA=7”, for example, you are not using the TRIS command but loading the TRISA register directly. PBP takes care of all these issue for you so no worries.
ASM Equivalent of what TRISA=7 does
MOVLW 007h
MOVWF TRISA
ASM Equivalent using TRIS command - PBP does not do this (and this may not be supported on the 877?)
MOVLW 007h
TRIS PORTA
Paul Borgmeier
Salt Lake City, UT
USA
__________________
I did not hear that and can not confirm.
But, since we are in PBP forum, you can use INPUT and/or OUTPUT commands to do what TRIS does.
Example:
TRISA.1 = 1
'make PORTA.1 an input pin.
same as
INPUT PORTA.1
'Make PORTA.1 an input pin.
or
TRISE.2 = 0
'Make PORTE.2 an output pin.
same as
OUTPUT PORTE.2
'Make PORTE.2 an output pin.
-------------------------------------
"If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte
Just for completeness, it appears the TRIS assembly command works on the 16F877 for PORTS A,B, and C, but not PORTS D or E.(and this may not be supported on the 877?)
Thr following works but gives warning "Use of this instruction is not recommended"
and thisCode:ASM movlw 0x07 TRIS PORTA ENDASM
gives errors.Code:ASM movlw 0x07 TRIS PORTD ENDASM
Paul Borgmeier
Salt Lake City, UT
USA
__________________
From PIC16F87X Data Sheet DS30292C-page 135, section 13.0 INSTRUCTION SET SUMMARY
Note: To maintain upward compatibility with
future PIC16F87X products, do not use the
OPTION and TRIS instructions.TRISA= {value}Patient: Doctor, it hurts when I do this.
Doctor: Then don’t do that!
TRISB= {value}
TRISC= {value}
TRISD= {value}
TRISE= {value}
Are all valid PBP statements and may/should be used to set TRIS directly (as they will take care of any required bank setting, ect).
Last edited by ErnieM; - 24th October 2006 at 19:47.
if you really want to use ASM in PBP, and don't want to look where TRIS or else register is located...
Code:asm CHK?RP TRISA ; PBP BANK switching macro movlw d'7' movwf TRISA endasm
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks