Цитата(alexunder @ Apr 30 2015, 23:38)

И все же: флаг EA выставлен? Скиньте сюда код инициализации системы прерываний
для пробы я смотрю как генерируется прерывание по изменению состояния ножки - все генерируется. Т е и вектор по правилному адресу и в EIE1 все как надо. Единственным битом который управляет от работающей части (можно заключить, что от или, который собирает флаги массива счетчиков все работает) до неработающей остается ECF.Но он выставлен. На силабовском форуме нашел упоминание, что для 120 кристаллов был баг, что переполнение не вызывало прерывание. Народ ржал что силабовцы его не занесли в еррату, а обозвали фичей. Про 340 не нашел(первый раз за 8 лет пользования этого проца понадобился этот узел и как то сразу не пошел).
Код
void Interrupts_Init(void)
{
IP = 0x20;
EIE1 = 0x80;
IT01CF = 0x98;
// IE = 0xA0;
//IE ðàçðåøåíèå ïðåðûâàíèÿìè
//
// EA
// ESPI0
// ET2
// ES0
// ET1
// EX1
// ET0
// EX0
//
//EA ESPI0 ET2 ES0 ET1 EX1 ET0 EX0
// 7 6 5 4 3 2 1 0
// 80 40 20 10 8 4 2 1
// 1 - 1 - - - - -
// ET2=1;
//*****************************
//EIE1
//
// ET3
// ECP1 êîìïàðàòîð 1
// ECP0 êîìïàðàòîð 0
// EPCA0 ìàññèâ òàéìåðîâ
// EADC0
// EWADC0
// EUSB0
// ESMB0
//
// ET3 ECP1 ECP0 EPCA0 EADC0 EWADC0 EUSB0 ESMB0
// 7 6 5 4 3 2 1 0
// 80 40 20 10 8 4 2 1
//ET3=1;
EIE1|=0X80;
EIE1|=0X10;// EPCA0
//********************************
// IP
//
// PSPIO
// PT2
// PS0
// PT1
// PX1
// PT0
// PX0
// - PSPI0 PT2 PS0 PT1 PX1 PT0 PX0
// 7 6 5 4 3 2 1 0
// 80 40 20 10 8 4 2 1
IP=0X20;
//*********************************
// EIP1
//
// PT3
// PCP1 êîìïàðàòîð 1
// PCP0
// PPCA0
// PADC0
// PWADC0
// PUSB0
// PSMB0
//
//
// PT3 PCP1 PCP0 PPCA0 PADC0 PWADC0 PUSB0 PSMB0
// 7 6 5 4 3 2 1 0
// 80 40 20 10 8 4 2 1
EIP1=0X80;
EA=1;
}
void PCA_Init(void)
{
PCA0MD &= ~0x40;//çàïðåòèëè ñîáàêó
PCA0MD=0x00;
PCA0CN=0x00;
//Âèáèðàåì èñòî÷íèê òàêòèðîâàíèÿ äëÿ ðåãèñòðà-ñ÷åò÷èêà PCA0H
PCA0MD&=~0x0e;//òàêòèðóåì îò SYSCLK/12
// PCA0MD|=0x02;//òàêòèðóåì îò SYSCLK/4
// PCA0MD|=0x04;//òàêòèðóåì îò T0
// PCA0MD|=0x06;//òàêòèðóåì îò íîæêè ECI
// PCA0MD|=0x08;//òàêòèðóåì îò SYSCLK
PCA0MD|=0x0A;//òàêòèðóåì îò EXOSC/8
EA=1;
EIE1|=0X10;
PCA0MD|=0x01;//ECF=1 ðàçðåøàåì ïðåðûâàíèå
//PCA0MD&=~1;//ECF=0 ðàçðåøàåì ïðåðûâàíèå
PCA0H=0;
PCA0L=0;
PCA0CPM0=0;
PCA0CPM1=0;
PCA0CPM2=0;
PCA0CPM3=0;
PCA0CPM4=0;
// PCA0CPM5=0;
//íà÷èíàåì ñ÷åò
PCA0MD&=~0X80;//CIDL=0;
//PCA0MD|=0X80;//CIDL=1;
PCA0CN|=0x40;//CR=1 ðàçðåøàåì ñ÷åò
//PCA0CN = 0x40;
// PCA0MD &= ~0x40;
// PCA0MD = 0x0B;
// PCA0CPL4 = 0x00;
// PCA0MD |= 0x40;
//ïåðåâîäèì 0 çàùåëêó â ðåæèì çàõâàòà ïî ïåðåõîäó 0->1
//PCA0CPM0|=0x20;//çàõâàò ïî ïåðåõîäó 0->1
PCA0CPM0|=0x10;//çàõâàò ïî ïåðåõîäó 1->0
PCA0CPM0|=0x01;//ïåðåõîä âûçîâåò ïðåðûâàíèå
}