Цитата(alexunder @ Jul 26 2016, 20:47)

взглянул. В коде вот такой кусок есть:
Код
//-----------------------------------------------------------------------------
// SYSCLK_CMOS_Init
//-----------------------------------------------------------------------------
// This routine initializes the system clock to the external oscillator in
// CMOS clock mode. Assumes a CMOS clock generator is connected to XTAL1.
//
void SYSCLK_CMOS_Init (void)
{
char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
SFRPAGE = CONFIG_PAGE; // Set SFR Page
OSCXCN = 0x20; // start external oscillator in CMOS clock mode.
SFRPAGE = LEGACY_PAGE;
RSTSRC = 0x04; // enable missing clock detector
SFRPAGE = CONFIG_PAGE;
CLKSEL = 0x01; // select external oscillator as SYSCLK source
OSCICN = 0x00; // disable internal oscillator
SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
}
который плохо сочетается со сказанным вами ранее:
Не пойму в чём несочетание? Ну описана процедура инициализации внешнего тактового генератора, но ведь эта процедура не вызывается в main(). Там вызывается SYSCLK_IntOsc_Init(); - инициализация ВНУТРЕННЕГО SYSCLK.
Цитата
Страница
166 датащита описывает процедуру сброса при вкл питания.
Я пробовал и вариант подключения ноги MONEN к питаниюдля реализации режима Power-On Reset, и вариант внешнего ресета кнопкой с подтяжкой ноги RST к плюсу через 4,7к. Без разницы - ноль реакции.
Цитата
Настоятельно рекомендую скачать
Configuration wizard для удобного конфигурирования МК, это лучше чем доверять исходникам, вырванным из разных мест.
Судя по конфигуратору, кроссбар и порты настроены правильно. Но лучше если вы проверите.
Уже скачал. Конфигуратор действительно удобный, но он мне не помог ничем. Код, выдаваемый им, соответствует тому, что я написал.
Цитата(Harbinger @ Jul 27 2016, 04:02)

Попробуйте отключить WDT в startup.a51. На обнуление 4 Кбайт XRAM требуется довольно много времени.
Это необычный вариант. А куда вставить процедуру отключения в startup.a51? И потом, там ассемблер, а я им не владею