Почему этот код PIC не подсвечивает мои светодиоды? - PullRequest
1 голос
/ 30 марта 2012

Следующий код не установит ни одного из выводов на моем PIC18F14K50, но это не может быть проще!

#include <pic18.h>
#include <htc.h>

void main(void)
{
  // Set ALL pins to output:
  TRISA = 0;
  TRISB = 0;
  TRISC = 0;

  // Set ALL pins to high:
  LATA = 0b11111111;
  LATB = 0b11111111;
  LATC = 0b11111111;

  // Leave pins high and wait forever:
  while (1);
}

Я использую MPLAB v8.43 и Hi-Tech ANSIКомпилятор C.

Логический пробник не показывает ни одного из верхних выводов, кроме VUSB и MCLR.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 05 апреля 2012

По крайней мере, некоторые контакты могут быть настроены как аналоговые входы.

Из таблицы данных для этого устройства

Работа вывода RA4 в качестве аналога выбирается настройкой ANS3. бит в регистре ANSEL, который является настройкой по умолчанию после Сброс при включении питания.

Если вы не установите регистр ANSEL, вывод не может быть использован в качестве выхода, поскольку он настроен как аналоговый вход.

Это относится ко всем контактам, которые могут быть входами A / D, и не охватывает все контакты, которые у вас есть.

Опять же, я не вижу никакой настройки бит настройки в вашем коде. Это устройство, например имеет 2 разных набора команд, и вам нужно как минимум указать, какой набор команд вы используете в битах конфигурации.

Вы можете попробовать добавить это в начало вашего кода сразу после включения:

// Configuration BITS setup
__CONFIG(1, FOSC_INTIO2 & XINST_OFF);
__CONFIG(2, WDTEN_OFF & PWRTEN_ON);
__CONFIG(3, MCLRE_OFF);
0 голосов
/ 30 марта 2012

Я полагаю, что вы не настроили генератор MCPU, попробуйте определить:

;   Oscillator:
    config  FOSC = INTIO2           ;Internal RC oscillator
;
;   PLL x4 Enable bit:
    config  PLLCFG = OFF

и

;Define oscillator frequency 
;{
    movlw   b'01100000'
    movwf   OSCCON
    movlw   b'01000000'
    movwf   OSCTUNE
;};

Это директивы для MPLAB asm, а не для Hi-Tech, но файловые регистры должны иметь одинаковые имена.

...