原创 PIC单片机小贴士

2008-3-25 16:33 2393 10 10 分类: MCU/ 嵌入式

交换
wf的数据:


    xorwf F,w

    xorwf F

    xorwf F,w




定义和初始化EEPROM数据时,必须在0x2100处。


    org 0x2100

nvData1 EQU $    //
定义地址


    DE "abcdefg"    //
定义内容


nvData2 EQU $

    DE "Hello world"





MPASM的伪指令pagesel只操作PCLATH.4PCLATH.3,故执行查表操作addwf
PCL
时,如果表格不在前半页时会出错。





PIC中断入口/出口的现场保存/恢复:

保存:


    movwf W_Temp ; save off current W register contents

    movf STATUS,w ; move status register into W register

    movwf Status_Temp ; save off contents of STATUS register

    movf PCLATH,W

    movwf Pclath_Temp

    movf FSR,w

    movwf FSR_Temp


恢复:


    movf FSR_Temp,w

    movwf FSR

    movf Pclath_Temp,W

    movwf PCLATH

    movf Status_Temp,w ; retrieve copy of STATUS register

    movwf STATUS ; restore pre-isr STATUS register contents

    swapf W_Temp,f

    swapf W_Temp,w ; restore pre-isr W register contents

    retfie ; return from interrupt 





PIC16系列最令人头疼的是:程序也分页、数据也分页!

所以,调用子程序前要注意调整程序页指针。

每个子程序入口要重新设置数据页指针,可以由多个点跳转过去的节点也要重新设置数据页指针。

从子程序返回后,要重新调整数据页指针和程序页指针。




PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /3 下一条