Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

PIC10f322, не получается програмно управлять WDT

Чт апр 04, 2019 02:59:08

Приветствую.

Сабж.

Исходник упростил до минимума, HI-TECH 9.82:
Код:
#include     <htc.h>

__CONFIG( FOSC_INTOSC & BOREN_ON  & WDTE_SWDTEN & PWRTE_ON & MCLRE_ON & CP_OFF & LVP_OFF  & LPBOR_OFF & WRT_OFF);

void main(void){
    SWDTEN = 1;
    ANSELA = 0;
    TRISA = 0b1110;
    LATA0 = 1;
    SLEEP();
    LATA0 = 0;
    SLEEP();
}
Не работает, светодиод (LATA0) не моргает.
Если в конфиге WDTE_SWDTEN заменить на WDTE_ON -- все работает как надо.
Никаких особенностей программного включения WDT в даташите не нашел, просто SWDTEN = 1.
Пробовал найти примеры на этом микроконтроллере -- не нашел.
Пробовал на трех разных микроконтроллерах.

Возможно кто-то сталкивался и подскажет, куда копать?

Re: PIC10f322, не получается програмно управлять WDT

Чт апр 04, 2019 06:05:48

Слово конфигурации верно формируется компилятором? Биты 4:3 = 01 ?

Re: PIC10f322, не получается програмно управлять WDT

Чт апр 04, 2019 08:29:03

Незнаю где смотреть. В HEX?

Но в микроконтроллере залито верно.
Программирую прямо из MPLAB, для надежности, считывал pic родной оболочкой PICKIT3.
Биты 4-3 конфигурации залиты даташитно: 1-1 для WDTE_ON и 0-1 для WDTE_SWDTEN.

Re: PIC10f322, не получается програмно управлять WDT

Чт апр 04, 2019 10:25:51

Да, в хексе есть специальные строчки.

Re: PIC10f322, не получается програмно управлять WDT

Чт апр 04, 2019 12:00:35

Строчку нашел, как вытянуть конфигурацию -- еще не понял.

Для WDTE_ON:
:02400E00DEFCD6

Для WDTE_SWDTEN:
:02400E00CEFCE6


Решилось.
На микрочипе подсказали -- в хедерах HI-TECH, WDTCON ассоциирован с 0022h, а надо с 0030h.
Изменил хедеры и все заработало как надо.

Re: PIC10f322, не получается програмно управлять WDT

Чт апр 04, 2019 13:06:59

И вот поди догадайся.
Ответить