我需要快速建议这个代码它不能编译,我不知道它有什么问题。我只是想在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); }
}
}
答案 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”。