PIC16F1824有什么C编译器能用?

2020-02-06 09:56发布

本帖最后由 1125526801 于 2013-6-15 09:24 编辑

PIC16F1824有什么C编译器能用?之前学习板上的单片机不一样是18F4520,用的MCC18。PIC16F1824是用PICC吗?



360截图20130615092316974.jpg (177.04 KB, 下载次数: 0) 下载附件 2013-6-15 09:23 上传

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
63条回答
1125526801
1楼-- · 2020-02-08 06:51
本帖最后由 1125526801 于 2013-6-15 09:38 编辑
yklstudent 发表于 2013-6-14 23:10
config1 config2需要配置的


除了学习板上的18F4520我还没用过其它PIC单片机。装了XC8免费版后,才找到PIC16F1824.h头文件。发现照搬之前的时钟配置
config过来用不了。打开之前用的PIC.h和现在的PIC16F1824.h对比,差远了。。。。

时钟不知道怎么配置。在DEBUG状态LED是能亮了。拔了仿真,直接给电不会运行。

头文件的部分:
  1. // Register: OSCCON
  2. extern volatile unsigned char           OSCCON              @ 0x099;
  3. #ifndef _LIB_BUILD
  4. asm("OSCCON equ 099h");
  5. #endif
  6. // bitfield definitions
  7. typedef union {
  8.     struct {
  9.         unsigned SCS0                   :1;
  10.         unsigned SCS1                   :1;
  11.         unsigned                        :1;
  12.         unsigned IRCF0                  :1;
  13.         unsigned IRCF1                  :1;
  14.         unsigned IRCF2                  :1;
  15.         unsigned IRCF3                  :1;
  16.         unsigned SPLLEN                 :1;
  17.     };
  18.     struct {
  19.         unsigned SCS                    :2;
  20.         unsigned                        :1;
  21.         unsigned IRCF                   :4;
  22.     };
  23. } OSCCONbits_t;
  24. extern volatile OSCCONbits_t OSCCONbits @ 0x099;
  25. // bitfield macros
  26. #define _OSCCON_SCS0_POSN                                   0x0
  27. #define _OSCCON_SCS0_POSITION                               0x0
  28. #define _OSCCON_SCS0_SIZE                                   0x1
  29. #define _OSCCON_SCS0_LENGTH                                 0x1
  30. #define _OSCCON_SCS0_MASK                                   0x1
  31. #define _OSCCON_SCS1_POSN                                   0x1
  32. #define _OSCCON_SCS1_POSITION                               0x1
  33. #define _OSCCON_SCS1_SIZE                                   0x1
  34. #define _OSCCON_SCS1_LENGTH                                 0x1
  35. #define _OSCCON_SCS1_MASK                                   0x2
  36. #define _OSCCON_IRCF0_POSN                                  0x3
  37. #define _OSCCON_IRCF0_POSITION                              0x3
  38. #define _OSCCON_IRCF0_SIZE                                  0x1
  39. #define _OSCCON_IRCF0_LENGTH                                0x1
  40. #define _OSCCON_IRCF0_MASK                                  0x8
  41. #define _OSCCON_IRCF1_POSN                                  0x4
  42. #define _OSCCON_IRCF1_POSITION                              0x4
  43. #define _OSCCON_IRCF1_SIZE                                  0x1
  44. #define _OSCCON_IRCF1_LENGTH                                0x1
  45. #define _OSCCON_IRCF1_MASK                                  0x10
  46. #define _OSCCON_IRCF2_POSN                                  0x5
  47. #define _OSCCON_IRCF2_POSITION                              0x5
  48. #define _OSCCON_IRCF2_SIZE                                  0x1
  49. #define _OSCCON_IRCF2_LENGTH                                0x1
  50. #define _OSCCON_IRCF2_MASK                                  0x20
  51. #define _OSCCON_IRCF3_POSN                                  0x6
  52. #define _OSCCON_IRCF3_POSITION                              0x6
  53. #define _OSCCON_IRCF3_SIZE                                  0x1
  54. #define _OSCCON_IRCF3_LENGTH                                0x1
  55. #define _OSCCON_IRCF3_MASK                                  0x40
  56. #define _OSCCON_SPLLEN_POSN                                 0x7
  57. #define _OSCCON_SPLLEN_POSITION                             0x7
  58. #define _OSCCON_SPLLEN_SIZE                                 0x1
  59. #define _OSCCON_SPLLEN_LENGTH                               0x1
  60. #define _OSCCON_SPLLEN_MASK                                 0x80
  61. #define _OSCCON_SCS_POSN                                    0x0
  62. #define _OSCCON_SCS_POSITION                                0x0
  63. #define _OSCCON_SCS_SIZE                                    0x2
  64. #define _OSCCON_SCS_LENGTH                                  0x2
  65. #define _OSCCON_SCS_MASK                                    0x3
  66. #define _OSCCON_IRCF_POSN                                   0x3
  67. #define _OSCCON_IRCF_POSITION                               0x3
  68. #define _OSCCON_IRCF_SIZE                                   0x4
  69. #define _OSCCON_IRCF_LENGTH                                 0x4
  70. #define _OSCCON_IRCF_MASK                                   0x78

  71. // Register: OSCSTAT
  72. extern volatile unsigned char           OSCSTAT             @ 0x09A;
  73. #ifndef _LIB_BUILD
  74. asm("OSCSTAT equ 09Ah");
  75. #endif
  76. // bitfield definitions
  77. typedef union {
  78.     struct {
  79.         unsigned HFIOFS                 :1;
  80.         unsigned LFIOFR                 :1;
  81.         unsigned MFIOFR                 :1;
  82.         unsigned HFIOFL                 :1;
  83.         unsigned HFIOFR                 :1;
  84.         unsigned OSTS                   :1;
  85.         unsigned PLLR                   :1;
  86.         unsigned T1OSCR                 :1;
  87.     };
  88. } OSCSTATbits_t;
  89. extern volatile OSCSTATbits_t OSCSTATbits @ 0x09A;
  90. // bitfield macros
  91. #define _OSCSTAT_HFIOFS_POSN                                0x0
  92. #define _OSCSTAT_HFIOFS_POSITION                            0x0
  93. #define _OSCSTAT_HFIOFS_SIZE                                0x1
  94. #define _OSCSTAT_HFIOFS_LENGTH                              0x1
  95. #define _OSCSTAT_HFIOFS_MASK                                0x1
  96. #define _OSCSTAT_LFIOFR_POSN                                0x1
  97. #define _OSCSTAT_LFIOFR_POSITION                            0x1
  98. #define _OSCSTAT_LFIOFR_SIZE                                0x1
  99. #define _OSCSTAT_LFIOFR_LENGTH                              0x1
  100. #define _OSCSTAT_LFIOFR_MASK                                0x2
  101. #define _OSCSTAT_MFIOFR_POSN                                0x2
  102. #define _OSCSTAT_MFIOFR_POSITION                            0x2
  103. #define _OSCSTAT_MFIOFR_SIZE                                0x1
  104. #define _OSCSTAT_MFIOFR_LENGTH                              0x1
  105. #define _OSCSTAT_MFIOFR_MASK                                0x4
  106. #define _OSCSTAT_HFIOFL_POSN                                0x3
  107. #define _OSCSTAT_HFIOFL_POSITION                            0x3
  108. #define _OSCSTAT_HFIOFL_SIZE                                0x1
  109. #define _OSCSTAT_HFIOFL_LENGTH                              0x1
  110. #define _OSCSTAT_HFIOFL_MASK                                0x8
  111. #define _OSCSTAT_HFIOFR_POSN                                0x4
  112. #define _OSCSTAT_HFIOFR_POSITION                            0x4
  113. #define _OSCSTAT_HFIOFR_SIZE                                0x1
  114. #define _OSCSTAT_HFIOFR_LENGTH                              0x1
  115. #define _OSCSTAT_HFIOFR_MASK                                0x10
  116. #define _OSCSTAT_OSTS_POSN                                  0x5
  117. #define _OSCSTAT_OSTS_POSITION                              0x5
  118. #define _OSCSTAT_OSTS_SIZE                                  0x1
  119. #define _OSCSTAT_OSTS_LENGTH                                0x1
  120. #define _OSCSTAT_OSTS_MASK                                  0x20
  121. #define _OSCSTAT_PLLR_POSN                                  0x6
  122. #define _OSCSTAT_PLLR_POSITION                              0x6
  123. #define _OSCSTAT_PLLR_SIZE                                  0x1
  124. #define _OSCSTAT_PLLR_LENGTH                                0x1
  125. #define _OSCSTAT_PLLR_MASK                                  0x40
  126. #define _OSCSTAT_T1OSCR_POSN                                0x7
  127. #define _OSCSTAT_T1OSCR_POSITION                            0x7
  128. #define _OSCSTAT_T1OSCR_SIZE                                0x1
  129. #define _OSCSTAT_T1OSCR_LENGTH                              0x1
  130. #define _OSCSTAT_T1OSCR_MASK                                0x80
复制代码
1125526801
2楼-- · 2020-02-08 11:51
millwood0 发表于 2013-6-14 21:30
I do.

me too.
sun_changdong
3楼-- · 2020-02-08 13:03
 精彩回答 2  元偷偷看……
xiongh
4楼-- · 2020-02-08 14:15
本帖最后由 xiongh 于 2013-6-15 10:20 编辑

MPLAB X  + PICC  挺好用。
#include "pic.h"
#include <htc.h>

__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & CLKOUTEN_OFF & IESO_ON & FCMEN_OFF);
__CONFIG(WRT_OFF & PLLEN_ON & STVREN_ON & BORV_LO & LVP_OFF);

现在正在用PIC16F1824做项目,8路AD全用了,还有一路PWM。
1125526801
5楼-- · 2020-02-08 18:34
xiongh 发表于 2013-6-15 10:18
MPLAB X  + PICC  挺好用。
#include "pic.h"
#include

好的,谢谢。我试试看。
1125526801
6楼-- · 2020-02-08 21:27
xiongh 发表于 2013-6-15 10:18
MPLAB X  + PICC  挺好用。
#include "pic.h"
#include

#include <pic16f1824.h>       //调用头文件,
#include "pic.h"
#include <htc.h>

__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & CLKOUTEN_OFF & IESO_ON & FCMEN_OFF);
__CONFIG(WRT_OFF & PLLEN_ON & STVREN_ON & BORV_LO & LVP_OFF);


编译不成功:
Build E:PICPIC_1824EPIC_1824E for device 16F1824
Using driver C:Program Files (x86)Microchipxc8v1.12inxc8.exe

Make: The target "E:PICPIC_1824Emain.p1" is up to date.
Executing: "C:Program Files (x86)Microchipxc8v1.12inxc8.exe" -oPIC_1824E.cof -mPIC_1824E.map --summary=default,-psect,-class,+mem,-hex --output=default,-inhx032 main.p1 --chip=16F1824 "-IC:Program Files (x86)Microchipxc8v1.12include" "-IC:Program Files (x86)HI-TECH SoftwarePICCstd9.60include" -P --runtime=default,+clear,+init,-keep,+osccal,-download,-resetbits,-stackcall,-config,+clib,+plib --opt=default,+asm,-debug,-speed,+space,9 --warn=0 -N255 -D__DEBUG=1 --debugger=pickit3 -Bsmall --double=32 --float=32 --addrqual=ignore -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Microchip MPLAB XC8 C Compiler V1.12
Copyright (C) 2012 Microchip Technology Inc.
License type: Node Configuration

Warning [1273] ; . Omniscient Code Generation not available in Free mode
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "FCMEN_OFF"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "IESO_ON"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "CLKOUTEN_OFF"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "BOREN_OFF"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "CPD_OFF"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "CP_OFF"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "MCLRE_ON"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "PWRTE_OFF"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "WDTE_OFF"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 339. undefined symbol "FOSC_INTOSC"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 343. undefined symbol "LVP_OFF"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 343. undefined symbol "BORV_LO"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 343. undefined symbol "STVREN_ON"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 343. undefined symbol "PLLEN_ON"
Error   [800] C:UsersguoliangAppDataLocalTempss2k.; 343. undefined symbol "WRT_OFF"
(908) exit status = 1

********** Build failed! **********

一周热门 更多>