欢迎访问ic37.com |
会员登录 免费注册
发布采购

PIC18F4431-I/P 参数 Datasheet PDF下载

PIC18F4431-I/P图片预览
型号: PIC18F4431-I/P
PDF下载: 下载PDF文件 查看货源
内容描述: 28 /40/ 44引脚增强型闪存微控制器采用纳瓦技术,高性能PWM和A / D [28/40/44-Pin Enhanced Flash Microcontrollers with nanoWatt Technology, High-Performance PWM and A/D]
分类和应用: 闪存微控制器
文件页数/大小: 392 页 / 3127 K
品牌: MICROCHIP [ MICROCHIP ]
 浏览型号PIC18F4431-I/P的Datasheet PDF文件第60页浏览型号PIC18F4431-I/P的Datasheet PDF文件第61页浏览型号PIC18F4431-I/P的Datasheet PDF文件第62页浏览型号PIC18F4431-I/P的Datasheet PDF文件第63页浏览型号PIC18F4431-I/P的Datasheet PDF文件第65页浏览型号PIC18F4431-I/P的Datasheet PDF文件第66页浏览型号PIC18F4431-I/P的Datasheet PDF文件第67页浏览型号PIC18F4431-I/P的Datasheet PDF文件第68页  
PIC18F2331/2431/4331/4431  
Example 6-1 shows a source code example that uses  
the Fast Register Stack during a subroutine call and  
return.  
6.1.2.3  
PUSHand POPInstructions  
Since the Top-of-Stack (TOS) is readable and writable,  
the ability to push values onto the stack and pull values  
off the stack without disturbing normal program execu-  
tion is a desirable option. To push the current PC value  
onto the stack, a PUSH instruction can be executed.  
This will increment the Stack Pointer and load the  
current PC value onto the stack. TOSU, TOSH and  
TOSL can then be modified to place data or a return  
address on the stack.  
EXAMPLE 6-1:  
FAST REGISTER STACK  
CODE EXAMPLE  
CALL SUB1, FAST  
;STATUS, WREG, BSR  
;SAVED IN FAST REGISTER  
;STACK  
The PUSHinstruction places the current PC value onto  
the stack. This increments the Stack Pointer and loads  
the current PC value onto the stack. The POPinstruc-  
tion discards the current TOS by decrementing the  
Stack Pointer. The previous value pushed onto the  
stack then becomes the TOS value.  
SUB1  
RETURN FAST  
;RESTORE VALUES SAVED  
;IN FAST REGISTER STACK  
6.1.4  
LOOK-UP TABLES IN PROGRAM  
MEMORY  
6.1.2.4  
Stack Full/Underflow Resets  
These Resets are enabled by programming the  
STVREN bit in Configuration Register 4L. When the  
STVREN bit is cleared, a full or underflow condition will  
set the appropriate STKFUL or STKUNF bit, but not  
cause a device Reset. When the STVREN bit is set, a  
full or underflow condition will set the appropriate  
STKFUL or STKUNF bit and then cause a device  
Reset. The STKFUL or STKUNF bits are cleared by the  
user software or a Power-on Reset.  
There may be programming situations that require the  
creation of data structures, or look-up tables, in  
program memory. For PIC18 devices, look-up tables  
can be implemented two ways:  
• Computed GOTO  
Table Reads  
6.1.4.1  
Computed GOTO  
A computed GOTOis accomplished by adding an offset  
to the program counter. An example is shown in  
Example 6-2.  
6.1.3  
FAST REGISTER STACK  
A Fast Register Stack is provided for the STATUS,  
WREG and BSR registers, to provide a “fast return”  
option for interrupts. The stack for each register is only  
one level deep and is neither readable nor writable. It is  
loaded with the current value of the corresponding  
register when the processor vectors for an interrupt. All  
interrupt sources will push values into the stack  
registers.  
A look-up table can be formed with an ADDWF PCL  
instruction and a group of RETLWnn instructions. The  
W register is loaded with an offset into the table before  
executing a call to that table. The first instruction of the  
called routine is the ADDWF PCLinstruction. The next  
instruction executed will be one of the RETLW nn  
instructions that returns the value “nn” to the calling  
function.  
The values in the registers are then loaded back into  
their associated registers if the RETFIE, FASTinstruc-  
tion is used to return from the interrupt. If both low and  
high-priority interrupts are enabled, the stack registers  
cannot be used reliably to return from low-priority inter-  
rupts. If a high-priority interrupt occurs while servicing a  
low-priority interrupt, the stack register values stored by  
the low-priority interrupt will be overwritten. In these  
cases, users must save the key registers in software  
during a low-priority interrupt.  
The offset value (in WREG) specifies the number of  
bytes that the program counter should advance and  
should be multiples of 2 (LSb = 0).  
In this method, only one data byte can be stored in  
each instruction location and room on the return  
address stack is required.  
EXAMPLE 6-2:  
COMPUTED GOTOUSING  
AN OFFSET VALUE  
If interrupt priority is not used, all interrupts may use the  
Fast Register Stack for returns from interrupt. If no  
interrupts are used, the Fast Register Stack can be  
used to restore the STATUS, WREG and BSR registers  
at the end of a subroutine call. To use the Fast Register  
Stack for a subroutine call, a CALL label, FAST  
instruction must be executed to save the STATUS,  
WREG and BSR registers to the Fast Register Stack. A  
RETURN, FAST instruction is then executed to restore  
these registers from the Fast Register Stack.  
MOVFW  
CALL  
OFFSET  
TABLE  
ORG  
TABLE  
0xnn00  
ADDWF  
RETLW  
RETLW  
RETLW  
PCL  
0xnn  
0xnn  
0xnn  
.
.
.
DS39616D-page 64  
2010 Microchip Technology Inc.  
 复制成功!