Код PIC не компилируется

Мне нужен быстрый совет для этого кода, он не компилируется, и я не могу понять, что с ним не так. Я просто пытаюсь напечатать элементы в массиве в ПОРТ 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);   }

}
}

-2

Решение

Вы ссылаетесь n[ i ]когда ты видимо имеешь ввиду x[ i ],

1

Другие решения

Вы действительно не должны объявлять PORTC как местный intпредполагается, что это специальная «переменная», которая отражает аппаратный регистр. Возможно, вам понадобятся некоторые специфичные для процессора включения, но вы не уверены.

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 значений через полсекундные интервалы из таблицы в порт и повторяться вечно. Вид «Здравствуй, мир» для микропроцессоров.

1
По вопросам рекламы [email protected]