PIC代码无法编译

时间:2014-04-30 14:05:28

标签: c++ c pic

我需要快速建议这个代码它不能编译,我不知道它有什么问题。我只是想在PORT C中打印数组中的元素,这是我的输出端口。感谢

#include <htc.h>
#define _XTAL_FREQ 500000 

void main()
       {
    int x[8]={0b1110, 0b1010, 0b1000, 0b1001, 0b0001, 0b0101, 0b0111, 0b0110, 0b1110};
    int i,PORTC;
    TRISC = 0 ;     // set PORTC as OUTPUT
    PORTC = 0b0000;
    for(;;){         // forever 
                 for ( i = 0; i < 8; i++ ){
                 PORTC = n[ i ] = i + 1; /* set element at location i to i + 1 */
                 __delay_ms(500);   }       

            }
    }

3 个答案:

答案 0 :(得分:1)

当您显然表示n[ i ]时,您会引用x[ i ]

答案 1 :(得分:1)

你真的不应该将PORTC声明为本地int,它应该是一个特殊的&#34;变量&#34;这反映了硬件寄存器。您可能也需要一些特定于处理器的包含,但不确定。

答案 2 :(得分:1)

如果没有人真正了解PIC,我建议您尝试这样的事情:

void main() {
  int x[8]={0b1110, 0b1010, 0b1000, 0b1001, 0b0001, 0b0101, 0b0111, 0b0110, 0b1110};
  int i;
  TRISC = 0;
  PORTC = 0b0000;
  for(;;) {
    for (i = 0; i < 8; i++) {
      PORTC = x[i];
      __delay_ms(500);   }       
    }
  }
}

TRISC是PORTC的控制端口。值为零会将PORTC上的所有引脚设置为输出端口。 [谢谢 - 见评论]

PORTC是输入/输出端口。我认为它与某种显示器相连。通过正确设置TRISC,它应该充当输出端口。

这应该从表到端口以半秒为间隔输出8个值并永远重复。微处理器的“hello world”。