当前位置:首页 > 单片机 > 单片机
[导读] //Filename:int17cxx.h/*InterruptcontextsaveandrestoreforPIC17C42PIC17C42A,PIC17C43,PIC17C44,PIC17C752,PIC17C756 __Wimage变量可能并不需要保存,该变量出现在所提供的延时程序中,用于计算指针/

//Filename:int17cxx.h

/*InterruptcontextsaveandrestoreforPIC17C42

PIC17C42A,PIC17C43,PIC17C44,PIC17C752,PIC17C756


__Wimage变量可能并不需要保存,该变量出现在所提供的延时程序中,用于计算指针/阵列地址。

FSR0寄存器也用于计算指针/阵列RAM的地址。

这些变量是否需要保存取决于代码的复杂程度。根据代码要求,可修改这些指令。

*/

#pragmaoption-l

#asm

MACROPUSH

MOVFPALUSTA,ALUSTA;saveflags

MOV fp__WImage,WImage

MOV pfWREG,WREG

MOV pfBSR,BSR

MOV pfFSR0,FSR0

ENDM

#endasm

#definesave_context#asm(PUSH)

#asm

MACROPOP

MOV fpFSR0,FSR0

MOV fpBSR,BSR

MOV fpWREG,WREG

MOV fpWImage,__WImage

MOV fpALUSTA,ALUSTA;restoreflags

ENDM

#endasm

#definerestore_context#asm(POP)

#pragmaoption+l

标题:PIC16CXX4K字器件的C语言中断保存/恢复语句



解答:

//Filename:int16c4k.h

/*PIC16C642,PIC16C662,PIC16C63,PIC16C65,PIC16C65A,PIC16C73,PIC16C73A,PIC16C74,PIC16C74A,PIC16C923,PIC16C924,PIC14000,PIC16C66,PIC16C67,PIC16C76,PIC16C77器件的中断保存和恢复语句。

这些例程主要用于PIC14架构中程序存储器为4k或8k的器件中。

__Wimage变量可能并不需要保存,该变量出现在所提供的延时程序中,用于计算指针/阵列地址。

FSR0寄存器也用于计算指针/阵列RAM的地址。

这些变量是否需要保存取决于代码的复杂程度。根据代码要求,可修改这些指令。

*/

#pragmaoption-l

#asm

MACROPUSH

MOV wfWREG;savecopywregister

MOV fSTATUS,w

bcfSTATUS,RP0;setbankto0

bcfSTATUS,RP1;

MOV wfSTATUS;savestatus

MOV fFSR,w;

MOV wfFSR;savecopyofFSR

MOV fPCLATH,w;

MOV wfPCLATH;savecopyofPCLATH

MOV f__WImage,w;

MOV wfWImage;savecopyof__WImage

ENDM

#endasm

#definesave_context#asm(PUSH)

#asm

MACROPOP

bcfSTATUS,RP0;ensurebankissetto0

bcfSTATUS,RP1;

MOV fWImage,w;

MOV wf__WImage;restore__WImage

MOV fPCLATH,w;

MOV wfPCLATH;restorePCLATH

MOV fFSR,w;

MOV wfFSR;restoreFSR

MOV fSTATUS,w

MOV wfSTATUS;restorestatusandbankinformation

swapfWREG,f;

swapfWREG,w;restoreworkingregister

ENDM

#endasm

#definerestore_context#asm(POP)

#pragmaoption+l

标题:PIC16CXX2K字器件的C语言中断保存/恢复语句

关于中断发表日期:10/25/1997

解答:

//FileName:int16C2k.h

/*PIC16C558,PIC16C622,PIC16C61,PIC16C62,PIC16C62A,PIC16C64,PIC16C64A,PIC16C710,PIC16C71,PIC16C711,PIC16C72,PIC16F83,PIC16F84器件的中断保存和恢复语句。

这些例程主要用于PIC14架构中程序存储器为2k或更小的器件中。

__Wimage变量可能并不需要保存,该变量出现在所提供的延时程序中,用于计算指针/阵列地址。

FSR0寄存器也用于计算指针/阵列RAM的地址。

这些变量是否需要保存取决于代码的复杂程度。根据代码要求,可修改这些指令。

*/

#pragmaoption-l

#asm

MACROPUSH

MOV wfWREG;savecopywregister

MOV fSTATUS,w

bcfSTATUS,RP0;setbankto0

MOV wfSTATUS;savestatus

MOV fFSR,w;

MOV wfFSR;savecopyofFSR

MOV f__WImage,w;

MOV wfWImage;savecopyof__WImage

ENDM

#endasm

#definesave_context#asm(PUSH)

#asm

MACROPOP

bcfSTATUS,RP0;ensurebankissetto0

MOV fWImage,w;

MOV wf__WImage;restore__WImage

MOV fFSR,w;

MOV wfFSR;restoreFSR

MOV fSTATUS,w

MOV wfSTATUS;restorestatusandbankinformation

swapfWREG,f;

swapfWREG,w;restoreworkingregister

ENDM

#endasm

#definerestore_context#asm(POP)

#pragmaoption+l


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分,通常嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,事实上所有带有数字接口的设备,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整...

关键字: 嵌入式 语言 技术

语音编码器的主要功能就是把用户语音的PCM(脉冲编码调制)样值编码成少量的比特(帧)。这种方法使得语音在连路产生误码、网络抖动和突发传输时具有健壮性(Robustness)。在接收端,语音帧先被误码为PCM语音样值,然后...

关键字: 语音编码器 PCM 语言

模糊控制算法(理论知识)

关键字: 模糊控制 语言

任何一种“语言”,都是各种“语言特性”的组合。

关键字: 程序 语言 嵌入式

由于新冠疫情,口罩已经成为了一种日常用品。而日本似乎十分热衷于研究不同类型的口罩,例如为了应对夏季的“冰镇口罩”和带微型电扇的口罩,还有为了女性美观研发的“小脸美口罩”。 8月4日,据媒体报道,日本一

关键字: 口罩 日本 智能 翻译 语言

研究表明,人在老年时学习第二语言也可以改善认知功能。 虽然我们大多数人都容易学会技术,但学习语言从未如此简单。

关键字: Android 语言 verbling

航科院民用无人机检验中心在湖北武汉对易瓦特科技股份公司的EWZ-S8八旋翼无人机进行了无人机系统安全能力二级围栏检验。本次检验耗时3个多小时。检验中心检验员针对EWZ-S8八旋翼无人机进行了无人

关键字: 无人机 语言

什么是51单片机?它有什么注意事项?编程也好设计也罢,都要有遵循的规则。可以发挥自己的创新但是要顾全大局,不能随意的编程。下面分享关于51单片机编程的一些规则,希望能帮到大家,避免大家四处碰壁。

关键字: 51单片机 编程 语言

1月15日,打着中科院计算所出品、完全自主开发旗号的国产编程语言“木兰”引发广泛关注,但很快被发现是基于Python语言套壳、换皮而来的产物。 面对质疑,中科院计算所编译实验室员工、“木兰”语言研发团

关键字: 中科院 国产 木兰 编程 语言 刘雷 计算所 重罚

国产编程语言“木兰”横空出世,后续结果反转令人不齿。 近日,一则关于国产编程语言“木兰”出世的消息让人眼前一亮。据悉,“木兰”是面向智能物联应用的编程语言,由我国科研人员自主设计、开发和实现,与之配套

关键字: 中科院 木兰 汉芯 编程 语言
关闭
关闭