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 上传

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
64条回答
1125526801
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
复制代码

一周热门 更多>