打印
[PIC®/AVR®/dsPIC®产品]

请教一下 如何在子程序中跳回到主函数开头运行

[复制链接]
1408|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lirunfei|  楼主 | 2015-3-30 18:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在子程序中检测某一个值  符合后跳回主函数main处运行,除了goto外有没有其他指令?
沙发
chenyu988| | 2015-3-30 19:17 | 只看该作者
PIC有封装好的库函数,直接调用就行。类似于reset();

使用特权

评论回复
板凳
chenyu988| | 2015-3-30 19:21 | 只看该作者
#define BOOTLOASER_ADDRESS                        0x00ul

#define RunBootloader()                       (((int(*)(void))(BOOTLOASER_ADDRES))())
也可以

使用特权

评论回复
地板
lirunfei|  楼主 | 2015-3-30 20:48 | 只看该作者
chenyu988 发表于 2015-3-30 19:17
PIC有封装好的库函数,直接调用就行。类似于reset();

用的是PIC16F1513 编译器为XC8  请问你说的是不是汇编中的reset指令?

使用特权

评论回复
5
chenyu988| | 2015-3-31 11:01 | 只看该作者
本帖最后由 chenyu988 于 2015-3-31 11:08 编辑
lirunfei 发表于 2015-3-30 20:48
用的是PIC16F1513 编译器为XC8  请问你说的是不是汇编中的reset指令?

封装好的库函数/*-------------------------------------------------------------------------
* Some useful macros for inline assembly stuff
*-------------------------------------------------------------------------*/
#define Nop()    {_asm nop _endasm}
#define ClrWdt() {_asm clrwdt _endasm}
#define Sleep()  {_asm sleep _endasm}
#define Reset()  {_asm reset _endasm}

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lirunfei + 1 很给力!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝