打印

请教PIC16F193X的配置字写法和设置

[复制链接]
15432|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我是土匪|  楼主 | 2011-4-13 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC16F1937内部晶振,内部复位,用ICD2下载,编译环境是MPLAB IDE v8.33。

有2个问题,1是配置字写法,2是配置字设置是否正确。

一、PIC16F1937配置字有2个寄存器,CONFIG1和CONFIG2.

像下面这样写:
__CONFIG(1,0x0464); //配置字:
__CONFIG(2,0x1233); //配置字:

会有警告:
Warning [171] E:\project\code\pic16f1937\test.c; 8.18 wrong number of preprocessor macro arguments for "__CONFIG" (2 instead of 1)
Warning [171] E:\project\code\pic16f1937\test.c; 9.18 wrong number of preprocessor macro arguments for "__CONFIG" (2 instead of 1)

如果写成:
__CONFIG1(0x09e4); //配置字:
__CONFIG2(0x1233); //配置字:

会报错:
Error   [194] E:\project\code\pic16f1937\test.c; 8.11 ")" expected
Error   [194] E:\project\code\pic16f1937\test.c; 9.11 ")" expected

请问改怎么样去写。

2、配置字各个位,配置是否有错?
沙发
251566208| | 2011-4-13 11:10 | 只看该作者
把括号去掉看看是否可以

使用特权

评论回复
板凳
我是土匪|  楼主 | 2011-4-13 11:13 | 只看该作者
请问您说的是哪个括号?

使用特权

评论回复
地板
251566208| | 2011-4-13 11:15 | 只看该作者
数字外面的

使用特权

评论回复
5
我是土匪|  楼主 | 2011-4-13 11:16 | 只看该作者
这样写
__CONFIG1,0x09e4; //配置字:
__CONFIG2,0x1233; //配置字:

结果如下:
Warning [374] E:\project\code\pic16f1937\test.c; 8.10 missing basic type; int assumed
Error   [285] E:\project\code\pic16f1937\test.c; 8.11 no identifier in declaration
Error   [314] E:\project\code\pic16f1937\test.c; 8.11 ";" expected
Warning [374] E:\project\code\pic16f1937\test.c; 9.10 missing basic type; int assumed
Error   [285] E:\project\code\pic16f1937\test.c; 9.11 no identifier in declaration
Error   [314] E:\project\code\pic16f1937\test.c; 9.11 ";" expected

使用特权

评论回复
6
251566208| | 2011-4-13 11:18 | 只看该作者
分号不要

使用特权

评论回复
7
我是土匪|  楼主 | 2011-4-13 11:25 | 只看该作者
__CONFIG1 0x09e4 //配置字:
__CONFIG2 0x1233 //配置字:

__CONFIG1,0x09e4 //配置字:
__CONFIG2,0x1233//配置字:

__CONFIG  1,0x09e4 //配置字:
__CONFIG  2,0x1233 //配置字:

__CONFIG  1  0x09e4//配置字:
__CONFIG  2  0x1233//配置字:

上面几种组合均报错,请指点

使用特权

评论回复
8
251566208| | 2011-4-13 11:30 | 只看该作者
__CONFIG1 0x09e4
__CONFIG2  0x1233

使用特权

评论回复
9
我是土匪|  楼主 | 2011-4-13 11:30 | 只看该作者
Warning [374] E:\project\code\pic16f1937\test.c; 16.11 missing basic type; int assumed
Error   [314] E:\project\code\pic16f1937\test.c; 16.11 ";" expected
Warning [374] E:\project\code\pic16f1937\test.c; 26.8 missing basic type; int assumed
Error   [984] E:\project\code\pic16f1937\test.c; 26.8 type redeclared
Error   [1098] E:\project\code\pic16f1937\test.c; 26.8 conflicting declarations for variable "OSCTUNE" (C:\Program Files\HI-TECH Software\PICC\9.81\include\pic16f1937.h:970)
Warning [374] E:\project\code\pic16f1937\test.c; 29.7 missing basic type; int assumed
Error   [984] E:\project\code\pic16f1937\test.c; 29.7 type redeclared
Error   [1098] E:\project\code\pic16f1937\test.c; 29.7 conflicting declarations for variable "PORTB" (C:\Program Files\HI-TECH Software\PICC\9.81\include\pic16f1937.h:297)
Warning [374] E:\project\code\pic16f1937\test.c; 30.8 missing basic type; int assumed
Error   [984] E:\project\code\pic16f1937\test.c; 30.8 type redeclared
Error   [1098] E:\project\code\pic16f1937\test.c; 30.8 conflicting declarations for variable "ANSELB" (C:\Program Files\HI-TECH Software\PICC\9.81\include\pic16f1937.h:1705)
Warning [374] E:\project\code\pic16f1937\test.c; 31.7 missing basic type; int assumed
Error   [984] E:\project\code\pic16f1937\test.c; 31.7 type redeclared
Error   [1098] E:\project\code\pic16f1937\test.c; 31.7 conflicting declarations for variable "TRISB" (C:\Program Files\HI-TECH Software\PICC\9.81\include\pic16f1937.h:668)
Error   [314] E:\project\code\pic16f1937\test.c; 31.7 ";" expected
Warning [374] E:\project\code\pic16f1937\test.c; 33.7 missing basic type; int assumed
Error   [984] E:\project\code\pic16f1937\test.c; 33.7 type redeclared
Error   [1098] E:\project\code\pic16f1937\test.c; 33.7 conflicting declarations for variable "PORTD" (C:\Program Files\HI-TECH Software\PICC\9.81\include\pic16f1937.h:349)
Warning [374] E:\project\code\pic16f1937\test.c; 34.7 missing basic type; int assumed
Error   [984] E:\project\code\pic16f1937\test.c; 34.7 type redeclared
Error   [1098] E:\project\code\pic16f1937\test.c; 34.7 conflicting declarations for variable "TRISB" (E:\project\code\pic16f1937\test.c:31)
Error   [314] E:\project\code\pic16f1937\test.c; 34.7 ";" expected
Warning [374] E:\project\code\pic16f1937\test.c; 35.8 missing basic type; int assumed
Error   [984] E:\project\code\pic16f1937\test.c; 35.8 type redeclared
Error   [1098] E:\project\code\pic16f1937\test.c; 35.8 conflicting declarations for variable "ANSELD" (C:\Program Files\HI-TECH Software\PICC\9.81\include\pic16f1937.h:1731)
Error   [285] E:\project\code\pic16f1937\test.c; 36.1 no identifier in declaration
Warning [374] E:\project\code\pic16f1937\test.c; 36.1 missing basic type; int assumed
Error   [314] E:\project\code\pic16f1937\test.c; 36.1 ";" expected
Warning [361] E:\project\code\pic16f1937\test.c; 56.1 function declared implicit int

使用特权

评论回复
10
yang010121| | 2011-4-13 21:08 | 只看该作者
菜鸟告诉你怎么弄,应该没问题的。

希望分配分数的时候多给点,哈哈

    __CONFIG _CONFIG1, _DEBUG_OFF & _LVP_OFF_CPD_OFF & _CP_OFF & 。。。。
    __CONFIG _CONFIG2, _WRT_ALL& __VCAPEN_RA0......

使用特权

评论回复
11
JayGong| | 2011-4-13 21:36 | 只看该作者
本帖最后由 JayGong 于 2011-4-13 21:38 编辑

这样写试试!应该没问题!

__CONFIG(0x0464);     //配置字:CONFIG1     0x8007
__CONFIG(0x1233);     //配置字:CONFIG2     0x8008

使用特权

评论回复
12
yang010121| | 2011-4-14 08:30 | 只看该作者
没搞过的不要乱说,程序的问题不是乱试验的,有固定的格式的。多逛逛类似的PIC论坛就得知了。
上面我已经说了正确的方法。

使用特权

评论回复
13
JayGong| | 2011-4-14 08:45 | 只看该作者
楼上怎么知道我没做过,我是这样用过才说的!

使用特权

评论回复
14
我是土匪|  楼主 | 2011-4-14 09:19 | 只看该作者
最后验证通过做法:


__CONFIG(CLKOUTEN_OFF&BOREN_OFF&CP_OFF&CPD_OFF&MCLRE_ON & WDTE_OFF & FOSC_INTOSC & MCLRE_ON & VCAPEN_OFF & STVREN_ON & PLLEN_ON);

使用特权

评论回复
15
251566208| | 2011-4-14 10:21 | 只看该作者
昨天我们技术后来告诉我的也是这样的

使用特权

评论回复
16
yang010121| | 2011-4-15 08:25 | 只看该作者
最后验证通过做法:


__CONFIG(CLKOUTEN_OFF&BOREN_OFF&CP_OFF&CPD_OFF&MCLRE_ON & WDTE_OFF & FOSC_INTOSC & MCLRE_ON & VCAPEN_OFF & STVREN_ON & PLLEN_ON);
我是土匪 发表于 2011-4-14 09:19


晕了,你查看MPLAB根目录里面的PIC193X的模板了吗?

使用特权

评论回复
17
yang010121| | 2011-4-15 08:26 | 只看该作者
虽然是编译通过了,但是有可能能配置字是错的。

使用特权

评论回复
18
kvdong| | 2011-4-15 09:52 | 只看该作者
在PICC里 12楼的写法是对的

使用特权

评论回复
19
我是土匪|  楼主 | 2011-4-15 12:54 | 只看该作者
这样写试试!应该没问题!

__CONFIG(0x0464);     //配置字:CONFIG1     0x8007
__CONFIG(0x1233);     //配置字:CONFIG2     0x8008
JayGong 发表于 2011-4-13 21:36




这样写,确实可以,个人理解是相当于把把一个寄存器赋值2次,如:

i = 9;
i = 2;
只有后者有效

使用特权

评论回复
20
我是土匪|  楼主 | 2011-4-15 12:55 | 只看该作者
晕了,你查看MPLAB根目录里面的PIC193X的模板了吗?
yang010121 发表于 2011-4-15 08:25



查看模板了,寄存器名称没有问题,如果您认为哪里不妥,请指正。

使用特权

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

本版积分规则

个人签名:抢钱、抢粮、抢女人! https://shop105961755.taobao.com/index.htm?spm=2013.1.w5002-3338070316.2.f652157E8BRIA

226

主题

1761

帖子

30

粉丝