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

PIC16F15345程序可以下载,但无法debug

[复制链接]
776|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
永远不停|  楼主 | 2021-2-4 17:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在学习PIC16F15345这颗MCU的时候,一开始就遇到难题,程序都不能正常进入debug
环境:MPLAB X IDE 5.45
硬件:PIC16F15345
烧录器:PICkit3

    自己新建了一个工程,写了一个简单的LED闪烁功能,配置字也配置了,编译无错后下载,程序可以下载并运行。然后尝试进debug调试,会报错:该器件没有准备好调试。但并不是每次都会报错,时好时坏,大概率是会报错进不了debug的。
The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x7ff
configuration memory
Programming/Verify complete
The target device is not ready for debugging. Please check your configuration bit settings and program the device before proceeding. The most common causes for this failure are oscillator and/or PGC/PGD settings.



代码如下:各位大佬能否帮忙看看是哪里的问题,已经搞了两三天了,都不能正常进debug,万分感谢!
#include <xc.h>

#pragma config FEXTOSC = OFF    // External Oscillator mode selection bits->Oscillator not enabled
#pragma config RSTOSC = HFINT1    // Power-up default value for COSC bits->HFINTOSC (1MHz)
#pragma config CLKOUTEN = OFF    // Clock Out Enable bit->CLKOUT function is disabled; i/o or oscillator function on OSC2
#pragma config CSWEN = ON    // Clock Switch Enable bit->Writing to NOSC and NDIV is allowed
#pragma config FCMEN = ON   // Fail-Safe Clock Monitor Enable bit->FSCM timer enabled

// CONFIG2
#pragma config MCLRE = ON    // Master Clear Enable bit->MCLR pin is Master Clear function
#pragma config PWRTE = OFF    // Power-up Timer Enable bit->PWRT disabled
#pragma config LPBOREN = OFF    // Low-Power BOR enable bit->ULPBOR disabled
#pragma config BOREN = ON    // Brown-out reset enable bits->Brown-out Reset Enabled, SBOREN bit is ignored
#pragma config BORV = LO    // Brown-out Reset Voltage Selection->Brown-out Reset Voltage (VBOR) set to 1.9V on LF, and 2.45V on F Devices
#pragma config ZCD = OFF    // Zero-cross detect disable->Zero-cross detect circuit is disabled at POR.
#pragma config PPS1WAY = ON    // Peripheral Pin Select one-way control->The PPSLOCK bit can be cleared and set only once in software
#pragma config STVREN = ON    // Stack Overflow/Underflow Reset Enable bit->Stack Overflow or Underflow will cause a reset

// CONFIG3
#pragma config WDTCPS = WDTCPS_31    // WDT Period Select bits->Divider ratio 1:65536; software control of WDTPS
#pragma config WDTE = OFF    // WDT operating mode->WDT Disabled, SWDTEN is ignored
#pragma config WDTCWS = WDTCWS_7    // WDT Window Select bits->window always open (100%); software control; keyed access not required
#pragma config WDTCCS = SC    // WDT input clock selector->Software Control

// CONFIG4
#pragma config BBSIZE = BB512    // ->512 words boot block size
#pragma config BBEN = OFF    // ->Boot Block disabled
#pragma config SAFEN = OFF    // ->SAF disabled
#pragma config WRTAPP = OFF    // ->Applic
#pragma congig WRTB = OFF
#pragma config WRTC = OFF
#pragma config WRTSAF = OFF
#pragma config LVP = ON

//CONFIG5
#pragma config CP = OFF

#define _XTAL_FREQ 8000000
#define LED1_DIR TRISAbits.TRISA4
#define LED1 LATAbits.LATA4
#define LED2_DIR TRISBbits.TRISB6
#define LED2 LATBbits.LATB6

void initIO(void)
{
    LED1_DIR = 0;
    LED2_DIR = 0;
    ANSELA = 0x00;
    ANSELB = 0x00;
}
void main(void)
{
    initIO();
    LED1 = 1;
    LED2 = 1;
    while(1)
    {
        LED1 = 1;
        LED2 = 1;
        __delay_ms(500);
        LED1 = 0;
        LED2 = 0;
        __delay_ms(500);
    }
    return;
}






使用特权

评论回复
沙发
systemchip| | 2021-2-5 10:38 | 只看该作者
BOREN关掉

使用特权

评论回复
板凳
永远不停|  楼主 | 2021-2-5 11:04 | 只看该作者

试了,还是不行,时好时坏
尝试改为烧录器供电后,就可以正常进debug。用烧录器供电时,每次点debug,编译后会先复位一下芯片,再连接至debug,这样就是正常的。
如果是外部供电,那么芯片一直是有电的,内部可能有程序运行,会导致连接时失败?
会是这种原因吗,如果是这样的话是不是跟配置字有关?

使用特权

评论回复
地板
kxsi| | 2021-3-3 16:01 | 只看该作者
是不是供电不稳定

使用特权

评论回复
5
nawu| | 2021-3-3 16:02 | 只看该作者
一行都执行不了吗

使用特权

评论回复
6
qcliu| | 2021-3-3 16:05 | 只看该作者
单独供电试一下

使用特权

评论回复
7
tfqi| | 2021-3-3 16:07 | 只看该作者
关掉这个功能的目的是什么呢

使用特权

评论回复
8
wiba| | 2021-3-3 16:08 | 只看该作者
将烧录器的地和电源地共在一起试试看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

59

帖子

0

粉丝