c - 16PIC877A 用 C 代码复位

标签 c microcontroller pic

我正在使用 PIC16F877a,我需要在不使用按钮的情况下进行程序重置。当我查看数据表和引用设计时,MLCR 引脚上有一个按钮。如果按下按钮,则 MCU 被重置。但是我需要可以用C代码控制的复位,我不想使用复位按钮。还有其他方法吗?

最佳答案

PIC 8 位 MCU 有一条软件复位汇编指令:

RESET

reset instruction

http://microchip.wikidot.com/8bit:rst

您将不得不使用内联汇编。我从未对 PIC 使用内联汇编,但来自 this page看起来这是 MPLAB 的正确语法:

void soft_reset(void)
{
    _asm
        reset
    _endasm
}

请注意,如链接页面所述,外部看门狗定时器通常是触发完整系统重置的更好方法。使用软复位,外部设备不会同时复位。使用外部 WDT,您只需停止抚摸看门狗,然后它就会重置整个电路板。

关于c - 16PIC877A 用 C 代码复位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41395154/

相关文章:

c - 是否可以用HI-TECH C为PIC12 MCU创建多线程程序

c - 使用按位 C

c - 求解带状矩阵方程组

embedded - 为什么在CAN协议(protocol)中使用定界符

c - 哪个 UML 图应该用于将用 C 语言为微 Controller 编写的软件概述?

embedded - PIC I2C 从设备确认数据

c - 为什么 valgrind 不检测数组中的多余元素

c - 结构体指针和结构体变量的使用有什么区别?

c - 为什么指向 16 位寄存器的指针是 uword?

c - MPLAB/XC8 不能在ASM 中跳转?