我有一个PIC18F24K20微芯片,想要控制继电器。我的RasPI在GPIO上运行得很好,但我无法让它在我的微芯片上工作。
我的测试程序是:
#include <xc.h>
#define R1 LATBbits.LATB0
#define R1_TRIS TRISBbits.RB0
#define R2 LATBbits.LATB1
#define R2_TRIS TRISBbits.RB1
void main(void) {
R1_TRIS = 0;
R2_TRIS = 0;
R1 = 1;
R2 = 0;
return;
}我做错什么了?
发布于 2016-09-06 10:01:38
return;通过以下方式:
while(1)
{
ClrWdt();
}3.您可能需要添加驱动程序才能操作继电器。
根据数据表,添加以下初始化代码:
CCP1CON=0;
CCP2CON=0;
ADCON0=0;
CM1CON0=0;
CM2CON0=0;另外,配置位上的PBADEN位应该是零。
发布于 2016-09-04 16:47:02
在嵌入式PIC处理器中,主函数永远不应该返回。在某些实现中,它会导致软件重置,这将导致您的引脚回到高阻抗模式。尝试添加while (1);在主目录末尾添加。
发布于 2016-09-06 08:34:22
检查使用的引脚是否具有其他功能。典型的缺点是引脚作为模拟引脚加倍,默认情况下是启用的。
通过在数据表中查找它们对应的引脚来禁用它们,并使用如下代码禁用它们
ANSEL.ANS0 = 0;
ANSEL.ANS1 = 0;如果启用了看门狗功能,也可能需要添加
ClrWdt(); (这是Mathieu的一个很好的建议)。
https://stackoverflow.com/questions/39318278
复制相似问题