/p>
Value - записуване значення
Channel - номер каналу з якого було отримано значення,
необхідно для виведення збережених до цього значень при зміні каналу оцифровки
повертається результат:
відсутня
* / WriteValue (unsigned short Value, unsigned short Channel)
{
if (Channel!=OldChanel) / / якщо був змінений канал потрібно вивести дані
{
WriteToUART (- IndexMas) ;/ / вивід
IndexMas=0 ;/ / дані виведені можна заповнювати масив спочатку
}
WriteEXTRAM (IndexMas, Value) ;/ / пишемо у зовнішнє ОЗУ
/ / conv_val [IndexMas]=Value ;/ / пишемо дані у зовнішнє ОЗУ
IndexMas + + ;/ / збільшуємо індекс
if (IndexMas>=CountMas) / / Перевіряємо не кінець чи це масиву
{
WriteToUART (- IndexMas) ;/ / якщо масив заповнений виведемо дані
IndexMas=0 ;/ / дані виведені можна заповнювати масив спочатку
}
}
//******************************************************************************************************************//
/ *
опис:
основна частина програми на яку після завантаження потрапляє управління
вхідні дані:
відсутні
повертається результат:
відсутня
* / main (void)
{grad=0; char c=0; char svet=0; short tmpVal=0;
/ / ------- Ініціалізація UART ---------- - 1=0xFD ;/ / Швидкість 9600 біт / с
TMOD=0x20 ;/ / Таймер 1 в режимі autoreload
TCON=0x40 ;/ / Запуск таймера 1
SCON=0x50 ;/ / 8 bit UART, дозвіл прийому
PCON &=0x7F ;/ / Відключення подвоєння швидкості
TI=1;// Прапори UART
RI=1;// Transmit & Recive
/ / ініціалізація таймера Т0
TCON &=0xC0;// T0 stop.
TMOD &=0xF0;// Скидання налаштувань T0.
TMOD |=0x01;// Установка T0 в режим T 16-bit
TL0=0xFE;// Затримка
TH0=0x32;//
IE=0x9A;// UART enable
/ / Налаштувати A / D to sequentially convert each input channel.=0x7C; |=0x10;// Запуск T0
{(! TF0); &=0xC0;// Зупинимо T0
//*******************************************************************//(ScanKBOnce(&c))=chrtoint(c);
/ *
запалюємо светодіот відповідає номеру каналу
який в даний момент оцифровувати
* /
if (NumChanel <9)
/ *
для об'єднання біт в одне число використана операція
логічного підсумовування (| =), а для зазнач...