p align="justify"> {char oldDPP=DPP; char val=0;=MyData;=* adr;=oldDPP;
return val;
}
Ця функція читає з внеш.ОЗУ з сторінки, номер якої записаний в змінну MyData (0х3) (див. початок програми - опис змінних), за адресою adr і повертає значення, що зберігається в комірці за цією адресою .
2.WriteEXTRAM (unsigned char xdata * adr, unsigned char val)
{char oldDPP=DPP;=MyData ;/ / третій сторінка пам'яті
* adr=val;=oldDPP ;/ / повертаємо старе значення
}
Дана функція є аналогом ReadEXTRAM, тільки використовується для запису: пишемо в осередок з адресою adr значення змінної val.
3.WriteToUART (unsigned short count)
{short i ;/ / счетчікshort tmp=0; («ADC Channel:% d nData start: n», NumChanel) ;/ / номер каналу і службове слово (i=0; i <= count; i + +)
{= ReadEXTRAM (i);
/ / val=conv_val [i];
printf ("% d n», tmp) ;/ / передача даних
} («Data stop n») ;/ / кінець виводу даних
}
Дана функція викликає читання із зовнішньої пам'яті (ReadEXTRAM) і записує в COM-Port.
4.WriteValue (unsigned short Value, unsigned short Channel)
{(Channel!=OldChanel) / / якщо був змінений канал потрібно вивести дані
{
WriteToUART (- IndexMas) ;/ / вивід
IndexMas=0 ;/ / дані виведені можна заповнювати масив спочатку
}
WriteEXTRAM (IndexMas, Value) ;/ / пишемо у зовнішнє ОЗУ
/ / conv_val [IndexMas]=Value ;/ / пишемо дані у зовнішнє ОЗУ
IndexMas + + ;/ / збільшуємо індекс
if (IndexMas>=CountMas) / / Перевіряємо не кінець чи це масиву
{
WriteToUART (- IndexMas) ;/ / якщо масив заповнений виведемо дані
IndexMas=0 ;/ / дані виведені можна заповнювати масив спочатку
}
}
Ця функція методом комбінування вищеописаних функцій виводить дані, якщо канал був змінений (тобто спрацьовує при зміні каналу, коли натиснута клавіша). Потім коли дані виведені, заповнює масив знову і пише у внеш.ОЗУ і виводить в COM-Port.