Welcome!
Welcome PIC fans! (to Pascal language fans too!) Technical
Other stuff
Search
Downloads
The last 5 downloads
The last 5 most downloaded
Google
|
Tips - I/O direction
How to program outputs?
Just remember that a pin is an input if the corresponding bit in the associated TRISx register is set. PMP has no specifiec built-in instruction for manipulating such register, simply affect a value directly to the register. An example with TRISB: TRISB := $0F; // PORTB 0..3 as inputs, 4..7 as outputs PORTB := $F0; // set PORTB 4..7 high TRISB.0 := false; // PORTB.0 as output, immediately set low (PORTB.0 was 0) // Remember that every output pin has a latch even if it is set as an input, the latch works... Manipulating the TRISx bit is a way to do fast 0 output with an external pullup (ofen used in bidirectional i/o such as I2C). Another example with the full PMP syntax possibilities: program test; var MyInputPin1 : boolean @PORTB.1; beginMyInputPin2 : boolean @PORTB.4; MyOutputPin1 : boolean @PORTB.2; TRISB := [MyInputPin1, MyInputPin1]; // set mask to pins that are inputs end.MyOutputPin1 := MyInputPin1 or MyInputPin2; Help! There is no TRISx in my device! For old and small devices that had no TRISx register, PMP (V1.05 and later) provides a special built-in procedure TRIS(Port, Mask) that maps to the TRISx register if it exists or to a TRIS instruction otherwise. The problem with TRIS instruction (of such device in fact) is that it is write only, you cannot read what is the current mask. Creation date : 2007.06.22 7:37 PM
| Connection...
Visits of the day: (2) PPA jihelb85 [ Password lost ? ] [ Join us ] Member online : Anonymous online : 30 Total visits: 416616 Most ever online
Total : 53The 17/05/2013 @ 16:28 Webmaster - Infos
Ip: 107.20.7.65 Search
Friends News
Where are you from?
|



Welcome PIC fans!
General documentation

Visits of the day: (2)
PPA
Anonymous online : 30
Total visits: 416616
Total : 53
Top 
