打印

MPLAB的configuration bit设置了 如何嵌入代码?

[复制链接]
8351|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huqg09|  楼主 | 2008-8-11 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不知道为什么PIC喜欢IDE来进行这些关键量的设置,搞得我开始花N多时间找这些寄存器的宏定义。 
现在找到了,不知道怎么把它们嵌到我C代码里面去,不管怎么编译,出来.HEX文件都是一样的~~这个MPLAB到底怎么用啊~~请指教~~~我用的C18  谢谢
沙发
huqg09|  楼主 | 2008-8-11 16:46 | 只看该作者

addition

无论怎么设置,生成的.hex烧录文件都没有任何变化,不知何故~~
注:NO check in "configuration bits set in code" 

thanks

使用特权

评论回复
板凳
yewuyi| | 2008-8-11 17:01 | 只看该作者

网上大把例子,自己查。。。

使用特权

评论回复
地板
huqg09|  楼主 | 2008-8-11 17:24 | 只看该作者

楼上的斑竹  你好~~
我想问题主要是不是 一个是 我的C代码是不是要有一个包含程序或类似功能的定义 我看C18的说明,好象说C18的startup代码主要是完成堆栈的设置 并没有说什么寄存器设置的包含~
还有一个可能就是 MPLAB的某个设置没有设置~~

我想 我的问题可能问的比较清楚了
选用PIC  图的就是一个快 刚用PIC  请教了~

使用特权

评论回复
5
machunshui| | 2008-8-11 23:21 | 只看该作者

版主已经说了方法

版主已经说了方法,只是初学者不了解.


例子如下:

#include <pic18.h>

__CONFIG(1,XINSTEN & WDTDIS & STVREN & DEBUGEN & UNPROTECT);
__CONFIG(2,HS & FCMDIS & IESODIS);
__CONFIG(3, CCP2RC1);

比如:
__CONFIG(1,XINSTEN & WDTDIS & STVREN & DEBUGEN & UNPROTECT);

其中XINSTEN指扩展指令使能,WDTDIS指看门狗禁止.


XINSTEN,WDTDIS的宏定义在头文件里面可以找到,其意义和单片机手册里面的配置寄存器具体的位描述的功能相对应.


另外,maplab里面烧写的时候,要设置成代码配置生效,否则下载下去的就是maplab里面图形界面的设置了.


仔细看厂家的样例子,是好的学习方法,

顺便说一句,pic生产厂家的资料是各个单片机厂家里面做的最好的,pic是最易于使用的.

使用特权

评论回复
6
machunshui| | 2008-8-11 23:23 | 只看该作者

注意以上是pic18的例子

注意以上是pic18的例子,

pic16类似,

具体写法可能不一样,

楼主还是要自己看厂家的例子程序.

使用特权

评论回复
7
ddb_21ic| | 2008-8-12 00:11 | 只看该作者

我喜欢看对应芯片的.h文件

里面描述得很清楚

使用特权

评论回复
8
huqg09|  楼主 | 2008-8-12 11:11 | 只看该作者

谢谢~

谢谢 M兄的回答~~~
可能以前做的片子,这些设置都是通过代码直接写寄存器来实现的,所以一下子可能不是特别适应~~`
其实,我也看过了一下代码,比如 我就用过#pragma config WDT = OFF 来关看门狗, 但是编译器却不认识WDT的宏定义,如果把器件换成PIC18F452 和相应的.LKR文件就能识别了~~~不知何故,我现在用的片子是新出来的 PIC18F14K50~

另外,在大家的帮助下,我也已经找到了另外的解决方法,就是用FILE-EXPORT来生成可以烧录并且带CONFIG信息的.hex文件~~谢谢~~

使用特权

评论回复
9
xieyuanbin| | 2008-8-13 19:27 | 只看该作者

照5楼的方法,把他的代码嵌入你的C程序中即可.

但每种片子CONFIG BITS都有细微差别.具体看该片子头文件中如何定义.

使用特权

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

本版积分规则

4

主题

8

帖子

1

粉丝