Блин, да что же это такое с PENIRQ  в ADS7843 ?! Сплошное издевательство! Замкнутый круг: к тач-панели с контроллером ADS7843 (входит в состав LCD  AT320240Q...) подключен PIC18F452 по SPI. Подключен правильно. Выход PENIRQ подключен на RB0 пика, резюк 100 К - между +пит. и RB0. Зациклил, смотрю осциллом - вроде импульсы все есть, при нажатии на панель инф-ция на RC4(SDI) меняется, т.е. ADS7843 с пиком общается. Но!!! На PENIRQ (RB0 пика) единица стоит глухо, хотя при нажатии на панель должна давать перепад в ноль! Прерывания запретил! Все!
 Что это? Неужели я совсем тупой?
   Помогите, плиз, кто чем может!
  Спасибо.
   
  Пример проги:
 // ОСЦИЛЛЯТОР ТИПА HS, ЧАСТОТА КВАРЦА - 20 МГц
 // WDT - ОТКЛЮЧЕН, Power Up Timer - ВКЛЮЧЕН,
 // Brown Out Detect - ВЫКЛЮЧЕН, Low Voltage Program - ВЫКЛЮЧЕН
// В приборе используется графический ЖКИ AT320240Q4FAT35 c TOUCH-панелью от фирмы "Ampire"
//   Контроллер ЖКИ -  SED1335F, контроллер Touch-панели - ADS7843
//===============================================================
  // Линии связи с LCD :
//    --------------------------------
#include
#include
#include
#include
#include
#include
#include
#define IRQ_TOUCH RB0  // определить бит0 порта B (прерывание при нажатии на экран)
#define CS_TOUCH RC2  // определить бит2 порта C (выборка ADS7843)
//--------------------------------------------------------------
//-----------ОПИСАНИЕ ПОДПРОГРАММ ДЛЯ ADS7843 ------------------ 
void read_touch();// команда опроса сенсорной панели
//---- КОНЕЦ ОПИСАНИЯ ПОДПРОГРАММ - КОМАНД ДЛЯ ADS7843 --------- 
//==================================================  
void  main()
 
     {
     INTCON = 0x00;
     INTCON2 = 0b10000000;
     PIE1 = 0x00; 
     ADCON1 = 0x07; // настр.портов RA и RE как цифровой I/O
     TRISC = 0b11111101;// настройка RC с учетом CS_TOUCH для SPI
     CS_TOUCH = 1;  // запретить обращение к TOUCH
     TRISB = 0b00000001;  // настр.RB  
// ============   ==========      ===================
// Пробный кусок с TOUCH-ПАНЕЛЬЮ
cykl:      read_touch();  //  проверочная   
           goto cykl;  
    }
//-------------------------------------------------      
//Подпрограмма "read_touch" ДЛЯ ADS7843 
//-------------------------------------------------      
void read_touch()// команда опроса сенсорной панели
 {
    unsigned char a;
    unsigned char i;
   a = TRISC;  // сохранение настроек RC до вызова подпрограммы
TRISC = 0b11010011; // настр.SDO/RC5 - на вывод, SDI/RC4 - на ввод,
           // SCK/RC3 - на вывод,  CS_TOUCH/RC2 - оставить на вывод
   CS_TOUCH = 1;          // запретить выбор ADS7843
     SSPSTAT = 0b01000000;
     SSPCON1 = 0b00100001; // Скорость тактов SPI 20/16=1,25 МГц 
     BF = 0;           // очистить флаг завершения приема/передачи
     CS_TOUCH = 0;         // разрешить выбор ADS7843
     for (i=0;i<50;i++);   // задержка
     SSPBUF = 0b10010100;  // тестовая настройка
     while(!BF);// Ожидание, пока завершится прием/передача команды
     BF = 0;    // очистить флаг завершения приема/передачи
     SSPBUF = 0;     // Инициируем прием старшего байта 
     while(!BF);// Ожидание, пока завершится прием/передача команды
     BF = 0;    // очистить флаг завершения приема/передачи
     SSPBUF = 0; // Инициируем прием старшего байта 
     while(!BF);// Ожидание, пока завершится прием/передача команды
     BF = 0;    // очистить флаг завершения приема/передачи
       }
//-----------------------------------------