历史上的今天
返回首页

历史上的今天

今天是:2025年03月05日(星期三)

正在发生

2020年03月05日 | MPLab X 配置字的设置

2020-03-05 来源:eefocus

近来突然想起自己还学过PIC,正好上午闲来无事,突然有点时间,打算重温一下!正好MicroChip发布了新的MPLab X IDE开发环境,传说还获过什么创新大奖,但是很不幸被硬件工程师狠狠的吐过槽,垃圾之类的话语都算是表扬。自己试试吧。


安装、打开,界面很炫

image

打开之后,也很炫

image

建立项目出现问题


不能从开始页建立工程,什么原因,我也不知道,反正是不行


从File建立一个Test工程


输入代码:


#include

 

__CONFIG(XT&WDTDIS&LVPDIS);

 

//定义配置字,晶振类型:XT,关闭开门狗,禁止低电压编程

void main()

{

    TRISC=0x00;

 

    PORTC=0xF0;

 

    while(1)

 

    {

 

    }

}

编译,问题来了。


make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf 

make[1]: Entering directory `G:/MpLab/Test.X' 

make  -f nbproject/Makefile-default.mk dist/default/production/Test.X.production.hex 

make[2]: Entering directory `G:/MpLab/Test.X' 

"D:Program Files (x86)HI-TECH SoftwarePICC9.83binpicc.exe"  -odist/default/production/Test.X.production.cof  -mdist/default/production/Test.X.production.map --summary=default,-psect,-class,+mem,-hex --chip=16F877 -P --runtime=default,+clear,+init,-keep,+osccal,-resetbits,-download,-stackcall,+clib --summary=default,-psect,-class,+mem,-hex --opt=default,+asm,-asmfile,-speed,+space,-debug,9 -N31 --warn=0  --double=24 --float=24 --addrqual=ignore --mode=lite --output=default,-inhx032 -g --asmlist "--errformat=%%f:%%l: error: %%s" "--msgformat=%%f:%%l: advisory: %%s" "--warnformat=%%f:%%l warning: %%s" build/default/production/newmain.p1  

HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode)  V9.83 

Copyright (C) 2011 Microchip Technology Inc. 

Serial number: HCPICP-123456 (PRO) 

make[2]: *** [dist/default/production/Test.X.production.hex] Error 1 

C:Users��AppDataLocalTemps4bo.:45: error: undefined symbol "LVPDIS" 

C:Users��AppDataLocalTemps4bo.:45: error: undefined symbol "WDTDIS" 

C:Users��AppDataLocalTemps4bo.:45: error: undefined symbol "XT" 

make[2]: Leaving directory `G:/MpLab/Test.X' 

make[1]: Leaving directory `G:/MpLab/Test.X' 

make[1]: *** [.build-conf] Error 2 

make: *** [.build-impl] Error 2


BUILD FAILED (exit value 2, total time: 1s)


总之是失败!还两个错误!!!


难道水平降低了?就这么几行,这可是原来运行正确的代码,不可能出错的。


排错吧,未定义的常量


error: undefined symbol "LVPDIS" 

error: undefined symbol "WDTDIS" 

undefined symbol "XT"


打开,Hi Tech的文件夹,找到pic.h文件和pic16f877.h文件查看。


发现常量定义变了


// Config Register: CONFIG

 

#define CONFIG               0x2007

 

// Oscillator Selection bits

 

// RC oscillator

 

#define FOSC_EXTRC           0xFFFF

 

// HS oscillator

 

#define FOSC_HS              0xFFFE

 

// XT oscillator

 

#define FOSC_XT              0xFFFD

 

// LP oscillator

 

#define FOSC_LP              0xFFFC

 

// Watchdog Timer Enable bit

 

// WDT enabled

 

#define WDTE_ON              0xFFFF

 

// WDT disabled

 

#define WDTE_OFF             0xFFFB

 

// Power-up Timer Enable bit

 

// PWRT disabled

 

#define PWRTE_OFF            0xFFFF

 

// PWRT enabled

 

#define PWRTE_ON             0xFFF7

 

// FLASH Program Memory Code Protection bits

 

// Code protection off

 

#define CP_OFF               0xFFFF

 

// 1F00h to 1FFFh code protected

 

#define CP_UPPER_256         0xEFEF

 

// 1000h to 1FFFh code protected

 

#define CP_HALF              0xDFDF

 

// 0000h to 1FFFh code protected

 

#define CP_All               0xCFCF

 

// Brown-out Reset Enable bit

 

// BOR enabled

 

#define BOREN_ON             0xFFFF

 

// BOR disabled

 

#define BOREN_OFF            0xFFBF

 

// Low Voltage In-Circuit Serial Programming Enable bit

 

// RB3/PGM pin has PGM function; low-voltage programming enabled

 

#define LVP_ON               0xFFFF

 

// RB3 is digital I/O, HV on MCLR must be used for programming

 

#define LVP_OFF              0xFF7F

 

// Data EE Memory Code Protection

 

// Code Protection off

一点示例


原代码改成


#include

 

 

 

__CONFIG(FOSC_XT&WDTE_OFF&LVP_OFF); 

 

//定义配置字,晶振类型:XT,关闭开门狗,禁止低电压编程

 

 

 

void main()

 

{

 

    TRISC=0x00;

 

    PORTC=0xF0;

 

    while(1)

 

    {

 

         

 

    }

 

}


编译通过,不错。


后来终于发现PICC的版本不同,常量定义有所不同,准备动手之前做好功课,不然……,就这么点小问题,困扰了我一上午,记下来,警示+备忘。


推荐阅读

史海拾趣

CUI Devices公司的发展小趣事

在COVID-19全球大流行期间,CUI Devices展现出了高度的社会责任感。公司决定向那些致力于设计和制造抗击疫情关键医疗设备的OEM、制造商、志愿者和组织提供免费的产品样本。这些样本涵盖了呼吸器、呼吸机、血液分析仪、测试设备、患者监护仪、成像系统和家庭医用器材等多个领域。此外,公司还与全球的制造设施和分销合作伙伴紧密合作,以确保其多样化的产品组合能够随时满足市场需求。

Crouzet公司的发展小趣事

Crouzet一直致力于产品创新和技术研发。公司的产品线不断丰富,涵盖了自动控制元件、智能控制器、可编程逻辑控制器、触摸屏、测量传感器、模拟和数字电子元件等多种产品。这些产品广泛应用于汽车、化工、电力、机械、消费电子、空调和冷库、石油和天然气等多个行业,为客户提供了高效、可靠的自动化解决方案。

FOCI Fiber Optic Communications Inc公司的发展小趣事

随着市场竞争的加剧,Crouzet开始注重提供定制化的解决方案,以满足客户不断变化的需求。公司凭借强大的研发能力和丰富的行业经验,能够根据客户的具体需求,提供量身定制的产品和服务。这种以客户需求为导向的经营理念,使得Crouzet在市场上赢得了更多的客户和合作伙伴。

Active-Semi公司的发展小趣事

随着业务的不断发展,Crouzet公司于1989年和1992年分别成功兼并了法国Syreles公司及墨西哥Gordos公司。这一系列的兼并活动不仅增强了公司的实力,还进一步扩大了公司的业务范围。此后,Crouzet开始在全球范围内布局,陆续在美国、德国、英国、荷兰、比利时、瑞士、瑞典等国设立分公司,形成了一个覆盖全球的销售网络。

Heidenhain Corp公司的发展小趣事

面对电子行业日益增长的自动化需求,海德汉公司凭借其丰富的自动化解决方案,助力多家电子企业实现了生产线的智能化升级。某大型电子制造厂采用海德汉的自动化控制系统和光栅尺技术,对生产线进行了全面改造。改造后的生产线实现了从原材料上料到成品下线的全自动化作业,大大提高了生产效率和产品质量稳定性。同时,通过集成海德汉的MES系统,实现了生产数据的实时监控和追溯,为企业的精细化管理提供了有力支持。

Dell公司的发展小趣事

在半导体制造这一高端电子领域,海德汉公司也展现出了其强大的技术实力。某国际领先的半导体制造商在研发新一代芯片制造设备时,选择了海德汉的高精度编码器作为关键部件。海德汉编码器以其卓越的稳定性和精度,确保了芯片制造过程中的高精度定位和运动控制,为半导体制造商提供了可靠的技术保障。这一合作不仅提升了半导体制造设备的整体性能,也进一步巩固了海德汉在高端电子制造领域的市场地位。

问答坊 | AI 解惑

如何在三个月掌握三年的经验 (转)

现在有的学生感觉毕业找工作好难,单位都要有工作经验的,附件是一位有过如此经历的人写的,看了看,觉得不错。…

查看全部问答>

从51到ARM

一本书,RT [ 本帖最后由 huchuan987 于 2010-7-15 01:30 编辑 ]…

查看全部问答>

哪位大侠用3G模块开发过“视频通话”功能?

我现在用WCDMA模块UC864-E开发视频通话功能,通过查阅资料,除了无线模块以外,还需要H324M视频电话协议栈、视频编解码Video Codec和视频电话拨号控制SC CALL等模块。 同时参考TD模块6311模块的视频通话解决方案(6311模块本身集成H324M协议栈, ...…

查看全部问答>

arm板访问外网

version:     embedded linux kernel 2.6.18     wget 1.9 设备IP:192.168.1.250     我想通过wget下载东西,局域网内的FTP服务器上能下载到.外网的FTP就不行了, 提示:     Connecting to ftp.kernel ...…

查看全部问答>

串口通信的问题,希望各路高手点拨

小弟初学51单片机,遇到一个问题,即“PC机以16进制发送一个0-65536之间的任一十进制数,当单片机收到此数后在数码管上显示出来”,小弟之前只了解SBUF,但SBUF一般存储的是16进制字符,如何把它还原成原本要发送的十进制数呢? 请大家帮助一下, ...…

查看全部问答>

周立功LMLINK涨价了,卖300块。我准备做个PCB,有人响应吗?

周立功LMLINK涨价了,卖300块。我准备做个PCB,有人响应吗?…

查看全部问答>

a8什么时候出来啊

                                 kandaoyoushouquan…

查看全部问答>

【创新产品】ST推出双接口EEPROM,实现电子设备参数无线存取

意法半导体(ST)推出双接口EEPROM,实现电子设备参数无线存取 RFID兼容EEPROM简化产品生命周期管理,实现全新功能特性 中国,2010年3月2日 —— 全球RF(射频)存储器和EEPROM IC的领导厂商意法半导体(纽约证券交易所代码:STM),今天 ...…

查看全部问答>

单片机..手痒..求ARM入门方法

这几天的考试无奈加悲催啊 我的那个程序还是没出来,感觉就2个问题了,现在没时间了,期待考试完了,继续弄!! ARM大家有啥学习资料和入门方法不??? …

查看全部问答>