Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
PIC microcontrollers
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Limitations=== * One [[Accumulator (computing)|accumulator]] * Register-[[bank switching]] is required to access the entire RAM of many devices * Operations and registers are not [[Orthogonal#Computer science|orthogonal]]; some instructions can address RAM and/or [[constant (computer science)|immediate]] constants, while others can use the accumulator only. The following stack limitations have been addressed in the '''PIC18''' series, but still apply to earlier cores: * The hardware call stack is not addressable, so preemptive [[computer multitasking|task switching]] cannot be implemented * Software-implemented [[stack (data structure)|stack]]s are not efficient, so it is difficult to generate [[Reentrant (subroutine)|reentrant]] code and support [[local variable]]s With paged program memory, there are two page sizes to worry about: one for CALL and GOTO and another for computed GOTO (typically used for table lookups). For example, on PIC16, CALL and GOTO have 11 bits of addressing, so the page size is 2048 instruction words. For computed GOTOs, where you add to PCL, the page size is 256 instruction words. In both cases, the upper address bits are provided by the PCLATH register. This register must be changed every time control transfers between pages. PCLATH must also be preserved by any interrupt handler.<ref>{{cite web|url=http://massmind.org/techref/microchip/pages.htm|title=Slowing 208.80.153.50,10-192-48-43&c=1&t=43197.5553483796|website=massmind.org|access-date=7 April 2018}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)