#include #include //////////////////////////////////////////////////////////////////////////////////////////// // ATmega128: // RC -8 МHz; //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////// TFT Nokia 6300 (MC2PA8201) // Определение цветов #define black 0,0,0 // черный #define red 255,0,0 // красный #define green 0,255,0 // зеленый #define blue 0,0,255 // синий #define yellow 255,255,0 // жёлтый #define cyan 0,255,255 // голубой #define lilac 255,0,255 // сиреневый #define white 255,255,255 // белый ///////////////////////// #define fon 16,143,255 // фон //#define fon 0,0,255 // фон ///////////////////////// счёт // пиксель 2x2 = 320x240 / 2 = 160x120 unsigned int pic_a; // счёт 160 unsigned int b_pic_a; // буфер счёт 160 unsigned int pic_b; // счёт 120 unsigned int b_pic_b; // буфер счёт 120 ///////////////////////// unsigned char pic_x00; // счёт начала Х unsigned char pic_x01; // счёт начала Х unsigned char pic_x10; // счёт конца Х unsigned char pic_x11; // счёт конца Х ///////////////////////// unsigned char pic_y00; // счёт начала Y unsigned char pic_y01; // счёт начала Y unsigned char pic_y10; // счёт конца Y unsigned char pic_y11; // счёт конца Y ///////////////////////// unsigned char pic; // пиксель 2x2 ///////////////////////// unsigned char pic_mask; // байт mask ///////////////////////// unsigned int b_pic_stroka; // буфер строка // 240 / 2 = 120 / 8 байт = 15 строк ///////////////////////////////////////////////////////////////////////////////////// SendCom TFT void SendCom (unsigned char com) { PORTB.6 = 0; // DC PORTA = com; // DATA PORTB.7 = 0; // WR PORTB.7 = 1; // WR PORTB.6 = 1; // DC } ///////////////////////////////////////////////////////////////////////////////////// SendDat TFT void SendDat (unsigned char dat) { PORTA = dat; // DATA PORTB.7 = 0; // WR PORTB.7 = 1; // WR } ///////////////////////////////////////////////////////////////////////////////////// развёртка горизонтальная // пиксель 2x2 = 320x240 / 2 = 160x120 void LCDclear(unsigned char color_r, unsigned char color_g, unsigned char color_b) { b_pic_a = pic_a; // буфер счёт 160 b_pic_b = pic_b; // буфер счёт 120 ///////////////////////// pic_x00 = (b_pic_a>>8); // буфер счёт начала Х pic_x01 = b_pic_a; // буфер счёт начала Х b_pic_a = b_pic_a + 1; // буфер + 1 pic_x10 = (b_pic_a>>8); // буфер счёт конца Х pic_x11 = b_pic_a; // буфер счёт конца Х ///////////////////////// pic_y00 = (b_pic_b>>8); // счёт начала Y pic_y01 = b_pic_b; // счёт начала Y b_pic_b = b_pic_b + 1; // буфер + 1 pic_y10 = (b_pic_b>>8); // счёт конца Y pic_y11 = b_pic_b; // счёт конца Y ///////////////////////// SendCom(0x2A); // Команда ориетации по Х координате SendDat(pic_x00); SendDat(pic_x01); // Данные начала Х координат (0) SendDat(pic_x10); SendDat(pic_x11); // Данные конца Х координат (100) SendCom(0x2B); // Команда ориентации по Y координате SendDat(pic_y00); SendDat(pic_y01); // Данные начала Y координат (0) SendDat(pic_y10); SendDat(pic_y11); // Данные конца Y координат (100) SendCom(0x2C); // Команда записи в память дисплея for (pic=0; pic<(2*2); pic++ ) {SendDat(color_r);SendDat(color_g);SendDat(color_b);} } ///////////////////////////////////////////////////////////////////////////////////// byte unsigned char R_RGB = 0; // unsigned char G_RGB = 0; // unsigned char B_RGB = 0; // /////////////////////////////////////////////// // пиксель 2x2 = 320x240 / 2 = 160x120 void LCD_byte(unsigned char byte) { ///////////////////////// pic_b pic_b = b_pic_stroka; // 240 / 2 = 120 / 8 байт = 15 строк ///////////////////////// pic_mask pic_mask=0b00000001; do { if (byte & pic_mask) { LCDclear(white); // 255,255,255 // белый //LCDclear(R_RGB, G_RGB, B_RGB); // 255,255,255 // белый } else { LCDclear(R_RGB, G_RGB, B_RGB); // фон //LCDclear(black); // //LCDclear(fon); // }; pic_mask=(pic_mask<<1); pic_b = pic_b + 2; // 240 / 2 = 120 / 8 байт = 15 строк } while (pic_mask); } //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////// счёт unsigned char x; // счёт unsigned char z; // счёт unsigned char zn; // счёт /////////////////////////////////////////////// связь unsigned char IP = 1; // IP модель -начальное 1 unsigned char ch; // частота -начальное 0 unsigned char pw = 3; // мощность TX -11 10 01 00 -начальное 3 /////////////////// S - метр unsigned char s; // счётчик пакетов s = sT - sR //////////////////////////////////////////////// контроль CRC unsigned int kontrol_TX_b; // буфер контроль TX unsigned int kontrol_RX_b; // буфер контроль RX unsigned int kontrol_CRC_b; // буфер контроль CRC /////////////////// АЦП /* unsigned int u; // АЦП unsigned int ub; // буфер АЦП unsigned int u1; // АЦП1 unsigned int ub1; // буфер АЦП1 unsigned int u2; // АЦП2 unsigned int ub2; // буфер АЦП2 unsigned int u3; // АЦП3 unsigned int ub3; // буфер АЦП3 unsigned int u4; // АЦП4 unsigned int ub4; // буфер АЦП4 unsigned int u5; // АЦП5 unsigned int ub5; // буфер АЦП5 unsigned int u6; // АЦП6 unsigned int ub6; // буфер АЦП6 unsigned int u7; // АЦП7 unsigned int ub7; // буфер АЦП7 */ /////////////////// kor unsigned char kor0 = 128; // АЦП / MOTOR L PF 0 > PB5 unsigned char kor1 = 128; // АЦП1 / РУЛЬ PF 1 > PE5 unsigned char kor2 = 128; // АЦП2 / MOTOR R PF 2 > PB6 unsigned char kor3 = 128; // АЦП3 / SERVO L PF 3 > PE3 unsigned char kor4 = 128; // АЦП4 / ШИМ 3 PF 4 > PB7 unsigned char kor5 = 128; // АЦП5 / SERVO R PF 5 > PE4 unsigned char kor6 = 128; // АЦП6 unsigned char kor7 = 128; // АЦП7 /////////////////// MOTOR unsigned int MOTOR_L_MAX = 255; // unsigned int MOTOR_L_MIN = 0; // unsigned int MOTOR_R_MAX = 255; // unsigned int MOTOR_R_MIN = 0; // /////////////////// ШИМ //unsigned char w; // ШИМ /////////////////// аккум пульт unsigned char p; // аккум пульт /////////////////// бузер unsigned char f_buzer=0xFF; // флаг бузер -начальное 0xFF /////////////////// /////////////////// обдув unsigned char obduv; // обдув /////////////////// помпа unsigned char pompa; // помпа /////////////////// /////////////////// температура 0 модель (MOTOR) unsigned char t; // температура 0 модель unsigned char f_obduv_ON; // флаг обдув 0 ON unsigned char t_MAX; // температура MAX 0 модель unsigned char t_MIN; // температура MIN 0 модель /////////////////// температура 1 модель (MOTOR) unsigned char t1; // температура 1 модель /////////////////// температура 2 модель (ESC) unsigned char t2; // температура 2 модель unsigned char f_obduv2_ON; // флаг обдув 2 ON unsigned char t_MAX2; // температура MAX 2 модель unsigned char t_MIN2; // температура MIN 2 модель /////////////////// температура 3 модель (ESC) unsigned char t3; // температура 3 модель //////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////// модель //unsigned char v; // датчик вода модель unsigned char g; // аккум модель //////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// кораблик: unsigned char mini_kartinki_korablik_0[32]={ 0b11111111, 0b00000001, 0b00000001, 0b10000001, 0b10000001, 0b10000001, 0b10000001, 0b10000001, 0b11100001, 0b11100001, 0b11100001, 0b11100001, 0b11111001, 0b11111001, 0b11111001, 0b11111001, 0b11100001, 0b11100001, 0b11100001, 0b11100001, 0b11100001, 0b10000001, 0b10000001, 0b11111101, 0b10000001, 0b10000001, 0b10000001, 0b00000001, 0b00000001, 0b00000001, 0b00000001, 0b11111111 }; unsigned char mini_kartinki_korablik_1[32]={ 0b01111111, 0b01000000, 0b01000000, 0b01000000, 0b01000001, 0b01000011, 0b01000111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01001111, 0b01000111, 0b01000011, 0b01000001, 0b01000000, 0b01000000, 0b01000000, 0b01000000, 0b01000000, 0b01111111 }; //////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// индикатор: unsigned char antenka[9]={ 0b00000011, 0b00000101, 0b00001001, 0b00010001, 0b01111111, 0b00010001, 0b00001001, 0b00000101, 0b00000011 }; unsigned char S_metr[8]={ 0b01000000, 0b01100000, 0b01110000, 0b01111000, 0b01111100, 0b01111110, 0b01111111, 0b01111111 }; //////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// LED: unsigned char menu; // счёт меню LED 1 unsigned char menu2; // счёт меню LED 2 unsigned char h; // шкала unsigned char hp; // шкала аккум пульт unsigned char hg; // шкала аккум модель /////////////////////////////////////////////// TX_byte: void TX_byte(unsigned char bi) { LCD_byte(bi); //byte pic_a = pic_a + 2; // 320 / 2 = 160 байт } /////////////////////////////////////////////// курсор: // 320x240/2 =160x120 // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. // 240 / 2 = 120 / 8 байт = 15 строк void kursor(unsigned int bi) { b_pic_stroka = bi * 16; // буфер строка // 240 / 2 = 120 / 8 байт = 15 строк pic_a = 0; // сброс строка } //////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// ASCII: unsigned char ASCII[256][5]={ /////////////////////////////////////// 0...31 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. /////////////////////////////////////// 32...63 0x00, 0x00, 0x00, 0x00, 0x00, //пробел 0x00, 0x00, 0x5F, 0x00, 0x00, //! 0x00, 0x07, 0x00, 0x07, 0x00, //" 0x14, 0x7F, 0x14, 0x7F, 0x14, //# 0x24, 0x2A, 0x7F, 0x2A, 0x12, //$ 0x23, 0x13, 0x08, 0x64, 0x62, //% 0x36, 0x49, 0x55, 0x22, 0x50, //& 0x00, 0x05, 0x03, 0x00, 0x00, //' 0x00, 0x1C, 0x22, 0x41, 0x00, //( 0x00, 0x41, 0x22, 0x1C, 0x00, //) 0x08, 0x2A, 0x1C, 0x2A, 0x08, //* 0x08, 0x08, 0x3E, 0x08, 0x08, //+ 0x00, 0x50, 0x30, 0x00, 0x00, //, 0x08, 0x08, 0x08, 0x08, 0x08, //- 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x20, 0x10, 0x08, 0x04, 0x02, /// 0x3E, 0x51, 0x49, 0x45, 0x3E, //0 0x00, 0x42, 0x7F, 0x40, 0x00, //1 0x42, 0x61, 0x51, 0x49, 0x46, //2 0x21, 0x41, 0x45, 0x4B, 0x31, //3 0x18, 0x14, 0x12, 0x7F, 0x10, //4 0x27, 0x45, 0x45, 0x45, 0x39, //5 0x3C, 0x4A, 0x49, 0x49, 0x30, //6 0x01, 0x71, 0x09, 0x05, 0x03, //7 0x36, 0x49, 0x49, 0x49, 0x36, //8 0x06, 0x49, 0x49, 0x29, 0x1E, //9 0x00, 0x36, 0x36, 0x00, 0x00, //: 0x00, 0x56, 0x36, 0x00, 0x00, //; 0x00, 0x08, 0x14, 0x22, 0x41, //< 0x14, 0x14, 0x14, 0x14, 0x14, //= 0x41, 0x22, 0x14, 0x08, 0x00, //> 0x02, 0x01, 0x51, 0x09, 0x06, //? /////////////////////////////////////// 64...95 0x32, 0x49, 0x79, 0x41, 0x3E, //@ 0x7E, 0x11, 0x11, 0x11, 0x7E, //A 0x7F, 0x49, 0x49, 0x49, 0x36, //B 0x3E, 0x41, 0x41, 0x41, 0x22, //C 0x7F, 0x41, 0x41, 0x22, 0x1C, //D 0x7F, 0x49, 0x49, 0x49, 0x41, //E 0x7F, 0x09, 0x09, 0x01, 0x01, //F 0x3E, 0x41, 0x41, 0x51, 0x32, //G 0x7F, 0x08, 0x08, 0x08, 0x7F, //H 0x00, 0x41, 0x7F, 0x41, 0x00, //I 0x20, 0x40, 0x41, 0x3F, 0x01, //J 0x7F, 0x08, 0x14, 0x22, 0x41, //K 0x7F, 0x40, 0x40, 0x40, 0x40, //L 0x7F, 0x02, 0x04, 0x02, 0x7F, //M 0x7F, 0x04, 0x08, 0x10, 0x7F, //N 0x3E, 0x41, 0x41, 0x41, 0x3E, //O 0x7F, 0x09, 0x09, 0x09, 0x06, //P 0x3E, 0x41, 0x51, 0x21, 0x5E, //Q 0x7F, 0x09, 0x19, 0x29, 0x46, //R 0x46, 0x49, 0x49, 0x49, 0x31, //S 0x01, 0x01, 0x7F, 0x01, 0x01, //T 0x3F, 0x40, 0x40, 0x40, 0x3F, //U 0x1F, 0x20, 0x40, 0x20, 0x1F, //V 0x7F, 0x20, 0x18, 0x20, 0x7F, //W 0x63, 0x14, 0x08, 0x14, 0x63, //X 0x03, 0x04, 0x78, 0x04, 0x03, //Y 0x61, 0x51, 0x49, 0x45, 0x43, //Z 0x00, 0x00, 0x7F, 0x41, 0x41, //[ 0x02, 0x04, 0x08, 0x10, 0x20, //\ 0x41, 0x41, 0x7F, 0x00, 0x00, //] 0x04, 0x02, 0x01, 0x02, 0x04, //^ 0x40, 0x40, 0x40, 0x40, 0x40, //_ /////////////////////////////////////// 96...127 0x00, 0x01, 0x02, 0x04, 0x00, //` 0x20, 0x54, 0x54, 0x54, 0x78, //a 0x7F, 0x48, 0x44, 0x44, 0x38, //b 0x38, 0x44, 0x44, 0x44, 0x00, //c 0x38, 0x44, 0x44, 0x48, 0x7F, //d 0x38, 0x54, 0x54, 0x54, 0x18, //e 0x08, 0x7E, 0x09, 0x01, 0x02, //f 0x08, 0x14, 0x54, 0x54, 0x3C, //g 0x7F, 0x08, 0x04, 0x04, 0x78, //h 0x00, 0x44, 0x7D, 0x40, 0x00, //i 0x20, 0x40, 0x44, 0x3D, 0x00, //j 0x00, 0x7F, 0x10, 0x28, 0x44, //k 0x00, 0x41, 0x7F, 0x40, 0x00, //l 0x7C, 0x04, 0x18, 0x04, 0x78, //m 0x7C, 0x08, 0x04, 0x04, 0x78, //n 0x38, 0x44, 0x44, 0x44, 0x38, //o 0x7C, 0x14, 0x14, 0x14, 0x08, //p 0x08, 0x14, 0x14, 0x18, 0x7C, //q 0x7C, 0x08, 0x04, 0x04, 0x08, //r 0x48, 0x54, 0x54, 0x54, 0x20, //s 0x04, 0x3F, 0x44, 0x40, 0x20, //t 0x3C, 0x40, 0x40, 0x20, 0x7C, //u 0x1C, 0x20, 0x40, 0x20, 0x1C, //v 0x3C, 0x40, 0x30, 0x40, 0x3C, //w 0x44, 0x28, 0x10, 0x28, 0x44, //x 0x0C, 0x50, 0x50, 0x50, 0x3C, //y 0x44, 0x64, 0x54, 0x4C, 0x44, //z 0x00, 0x08, 0x36, 0x41, 0x00, //{ 0x00, 0x00, 0x7F, 0x00, 0x00, //| 0x00, 0x41, 0x36, 0x08, 0x00, //} 0x10, 0x08, 0x08, 0x10, 0x08, //~ 0x00, 0x60, 0x60, 0x00, 0x00, //. /////////////////////////////////////// 128...159 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. /////////////////////////////////////// 160...191 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. 0x00, 0x60, 0x60, 0x00, 0x00, //. /////////////////////////////////////// 192...223 0x7E, 0x11, 0x11, 0x11, 0x7E, //A 0x7F, 0x49, 0x49, 0x49, 0x30, //Б 0x7F, 0x49, 0x49, 0x49, 0x36, //B 0x7F, 0x01, 0x01, 0x01, 0x01, //Г 0x60, 0x3E, 0x21, 0x3F, 0x60, //Д 0x7F, 0x49, 0x49, 0x49, 0x41, //Е 0x67, 0x18, 0x7F, 0x18, 0x67, //Ж 0x22, 0x41, 0x49, 0x49, 0x36, //3 0x7F, 0x10, 0x08, 0x04, 0x7F, //И 0x7F, 0x10, 0x09, 0x04, 0x7F, //Й 0x7F, 0x08, 0x14, 0x22, 0x41, //K 0x40, 0x3E, 0x01, 0x01, 0x7E, //Л 0x7F, 0x02, 0x04, 0x02, 0x7F, //M 0x7F, 0x08, 0x08, 0x08, 0x7F, //H 0x3E, 0x41, 0x41, 0x41, 0x3E, //O 0x7F, 0x01, 0x01, 0x01, 0x7F, //П 0x7F, 0x09, 0x09, 0x09, 0x06, //P 0x3E, 0x41, 0x41, 0x41, 0x22, //C 0x01, 0x01, 0x7F, 0x01, 0x01, //T 0x27, 0x48, 0x48, 0x48, 0x3F, //У 0x1E, 0x21, 0x7F, 0x21, 0x1E, //Ф 0x63, 0x14, 0x08, 0x14, 0x63, //X 0x3F, 0x20, 0x20, 0x3F, 0x40, //Ц 0x1F, 0x10, 0x10, 0x10, 0x7F, //Ч 0x7F, 0x40, 0x7F, 0x40, 0x7F, //Ш 0x3F, 0x20, 0x3F, 0x20, 0x7F, //Щ 0x01, 0x7F, 0x44, 0x44, 0x38, //Ъ 0x7F, 0x44, 0x7C, 0x00, 0x7F, //Ы 0x7F, 0x44, 0x44, 0x44, 0x38, //Ь 0x22, 0x41, 0x49, 0x49, 0x3E, //Э 0x7F, 0x08, 0x7F, 0x41, 0x7F, //Ю 0x46, 0x29, 0x19, 0x09, 0x7F, //Я 0x20, 0x54, 0x54, 0x54, 0x78, //a 0x3C, 0x4A, 0x4A, 0x4B, 0x30, //б 0x7C, 0x54, 0x54, 0x58, 0x20, //в 0x7C, 0x04, 0x04, 0x04, 0x04, //г 0x60, 0x38, 0x24, 0x3C, 0x60, //д 0x38, 0x54, 0x54, 0x54, 0x18, //e 0x74, 0x08, 0x7C, 0x08, 0x74, //ж 0x28, 0x44, 0x54, 0x54, 0x28, //з 0x7C, 0x20, 0x10, 0x08, 0x7C, //и 0x7C, 0x21, 0x12, 0x09, 0x7C, //й 0x7C, 0x10, 0x10, 0x28, 0x44, //к 0x40, 0x78, 0x04, 0x04, 0x7C, //л 0x7C, 0x08, 0x10, 0x08, 0x7C, //м 0x7C, 0x10, 0x10, 0x10, 0x7C, //н 0x38, 0x44, 0x44, 0x44, 0x38, //o 0x7C, 0x04, 0x04, 0x04, 0x7C, //п 0x7C, 0x14, 0x14, 0x14, 0x08, //p 0x38, 0x44, 0x44, 0x44, 0x28, //c 0x04, 0x04, 0x7C, 0x04, 0x04, //т 0x0C, 0x50, 0x50, 0x50, 0x3C, //y 0x18, 0x24, 0x7C, 0x24, 0x18, //ф 0x44, 0x28, 0x10, 0x28, 0x44, //х 0x3C, 0x20, 0x20, 0x3C, 0x40, //ц 0x1C, 0x20, 0x20, 0x20, 0x7C, //ч 0x7C, 0x40, 0x7C, 0x40, 0x7C, //ш 0x3C, 0x20, 0x3C, 0x20, 0x7C, //щ 0x04, 0x7C, 0x48, 0x48, 0x30, //ъ 0x7C, 0x48, 0x48, 0x30, 0x7C, //ы 0x7C, 0x48, 0x48, 0x48, 0x30, //ь 0x28, 0x44, 0x54, 0x54, 0x38, //э 0x7C, 0x38, 0x44, 0x44, 0x38, //ю 0x48, 0x34, 0x14, 0x14, 0x7C //я }; /////////////////////////////////////////////// ASCII: void LED(unsigned char bi) { for (zn=0; zn<5; zn++) { LCD_byte(ASCII[bi][zn]); //byte pic_a = pic_a + 2; // 320 / 2 = 160 байт }; LCD_byte(0b00000000); //byte pic_a = pic_a + 2; // 320 / 2 = 160 байт } ////////////////////////////////////////////////////// /////////////////////////////////////////////////// 0: void st_10(unsigned char bi) { z=0; while (bi>99) {z++; bi=bi-100;}; //LED(z+48); z=0; while (bi>9) {z++; bi=bi-10;}; //LED(z+48); z=0; while (bi) {z++; bi=bi-1;}; LED(z+48); } ////////////////////////////////////////////////// 00: /* void st_100(unsigned char bi) { z=0; while (bi>99) {z++; bi=bi-100;}; //LED(z+48); z=0; while (bi>9) {z++; bi=bi-10;}; LED(z+48); z=0; while (bi) {z++; bi=bi-1;}; LED(z+48); } */ ///////////////////////////////////////////////// 000: -0,6mc void st_1000(unsigned int bi) { z=0; while (bi>9999){z++; bi=bi-10000;}; //LED(z+48); z=0; while (bi>999) {z++; bi=bi-1000;}; //LED(z+48); z=0; while (bi>99) {z++; bi=bi-100;}; LED(z+48); z=0; while (bi>9) {z++; bi=bi-10;}; LED(z+48); z=0; while (bi) {z++; bi=bi-1;}; LED(z+48); } //////////////////////////////////////////////// 0000: -0,6mc void st_10000(unsigned int bi) { z=0; while (bi>9999){z++; bi=bi-10000;}; //LED(z+48); z=0; while (bi>999) {z++; bi=bi-1000;}; LED(z+48); z=0; while (bi>99) {z++; bi=bi-100;}; LED(z+48); z=0; while (bi>9) {z++; bi=bi-10;}; LED(z+48); z=0; while (bi) {z++; bi=bi-1;}; LED(z+48); } /////////////////////////////////////////////// 00000: -0,6mc void st_100000(unsigned int bi) { z=0; while (bi>9999){z++; bi=bi-10000;}; LED(z+48); z=0; while (bi>999) {z++; bi=bi-1000;}; LED(z+48); z=0; while (bi>99) {z++; bi=bi-100;}; LED(z+48); z=0; while (bi>9) {z++; bi=bi-10;}; LED(z+48); z=0; while (bi) {z++; bi=bi-1;}; LED(z+48); } /////////////////////////////////////////////// f - пауза : unsigned char x_fpp; void fpp(unsigned char bi) { for (x_fpp=0; x_fpp 99) bi = 99; //////////////////////////////////// x_ak_pult=0; while (bi>9) {x_ak_pult++; bi=bi-10;}; LED(x_ak_pult+48); TX_byte(0b01000000); TX_byte(0b00000000); x_ak_pult=0; while (bi>0) {x_ak_pult++; bi=bi-1;}; LED(x_ak_pult+48); } /////////////////////////////////////////////// аккум модель: unsigned char x_ak_model; void ak_model(unsigned char bi) {// опорное 5V; + 7...13,2 V; Делитель 1/5,12. (1/2,56). //////////////////////////////////// x_ak_model=0; while (bi>99) {x_ak_model++; bi=bi-100;}; LED(x_ak_model+48); x_ak_model=0; while (bi>9) {x_ak_model++; bi=bi-10;}; LED(x_ak_model+48); TX_byte(0b01000000); TX_byte(0b00000000); x_ak_model=0; while (bi>0) {x_ak_model++; bi=bi-1;}; LED(x_ak_model+48); } ////////////////////////////////////////////// шкала 0 аккум: unsigned char x_skala_0_ak; void skala_0_ak(unsigned char bi) { TX_byte(0b11111110); for (x_skala_0_ak=0; x_skala_0_ak<31; x_skala_0_ak++) { if (x_skala_0_ak<(bi/2)) h=0b11111110; // |--- else h=0b10000010; TX_byte(h); }; TX_byte(0b11111110); TX_byte(0b00111000); } //////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////// pult_TX_UART1: unsigned char pult_TX_UART1[84]={ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 0...5 синхро 0x00, // 6 menu 0x00, // 7 menu2 0x00, // 8 s // S-метр 0x00, // 9 p // аккум пульт 0x00, // 10 g // аккум модель //////////////////////// 0x00, // 11 синхро //////////////////////// 0x00, // 12 ch // частота 0x00, // 13 pw // мощность 0x00, // 14 IP // модель 0x00, // 15 // kontrol_TX_b 0x00, // 16 // kontrol_TX_b //////////////////////// 0x00, // 17 синхро //////////////////////// 0x00, // 18 // kontrol_RX_b 0x00, // 19 // kontrol_RX_b 0x00, // 20 // kontrol_CRC_b 0x00, // 21 // kontrol_CRC_b 0x00, // 22 // флаг f_buzer //////////////////////// 0x00, // 23 синхро //////////////////////// 0x00, // 24 t; // температура 0 модель 0x00, // 25 t_MAX; // температура MAX 0 модель 0x00, // 26 t_MIN; // температура MIN 0 модель 0x00, // 27 // 0x00, // 28 f_obduv_ON; // флаг обдув 0 ON //////////////////////// 0x00, // 29 синхро //////////////////////// 0x00, // 30 t1; // температура 1 модель 0x00, // 31 // 0x00, // 32 // 0x00, // 33 // 0x00, // 34 // //////////////////////// 0x00, // 35 синхро //////////////////////// 0x00, // 36 t2; // температура 2 модель 0x00, // 37 t_MAX2; // температура MAX 2 модель 0x00, // 38 t_MIN2; // температура MIN 2 модель 0x00, // 39 // 0x00, // 40 f_obduv2_ON; // флаг обдув 2 ON //////////////////////// 0x00, // 41 синхро //////////////////////// 0x00, // 42 t3; // температура 3 модель 0x00, // 43 // 0x00, // 44 // 0x00, // 45 // 0x00, // 46 // //////////////////////// 0x00, // 47 синхро //////////////////////// 0x00, // 48 obduv; // обдув 0x00, // 49 0x00, // 50 0x00, // 51 0x00, // 52 //////////////////////// 0x00, // 53 синхро //////////////////////// 0x00, // 54 pompa // помпа 0x00, // 55 0x00, // 56 0x00, // 57 0x00, // 58 //////////////////////// 0x00, // 59 синхро //////////////////////// 0x00, // 60 kor0 0x00, // 61 kor1 0x00, // 62 kor2 0x00, // 63 kor3 0x00, // 64 //////////////////////// 0x00, // 65 синхро //////////////////////// 0x00, // 66 kor4 0x00, // 67 kor5 0x00, // 68 kor6 0x00, // 69 kor7 0x00, // 70 //////////////////////// 0x00, // 71 синхро //////////////////////// 0x00, // 72 // MOTOR_L_MAX 0x00, // 73 // MOTOR_L_MIN 0x00, // 74 // MOTOR_R_MAX 0x00, // 75 // MOTOR_R_MIN 0x00, // 76 //////////////////////// 0x00, // 77 синхро //////////////////////// 0x00, // 78 0x00, // 79 0x00, // 80 0x00, // 81 0x00, // 82 //////////////////////// 0x00 // 83 синхро }; //////////////////////////////////////////////////////////////// "яяяяяя" unsigned char flag3_pult_TX_UART1; // флаг3 "яяяяяя" полный //////////////////////////////////////////////////////////////// unsigned char filtr_pult_TX_UART1[]={"яяяяяя"}; // фильтр "яяяяяя" unsigned char st_filtr_pult_TX_UART1; // счёт фильтр "яяяяяя" unsigned char st_pult_TX_UART1 = 6; // счёт "яяяяяя" unsigned char flag_pult_TX_UART1; // флаг "яяяяяя" //////////////////////////////////////////////////////////////// interrupt [USART1_RXC] void usart1_rx_isr(void) // { PORTD.0=1; // контроль //////////////////////// буфер "яяяяяя" if (flag_pult_TX_UART1) { pult_TX_UART1[st_pult_TX_UART1] = UDR1; // буфер GPS st_pult_TX_UART1++; // счёт GPS if (st_pult_TX_UART1 > 83) { // маскимальная длина 84 flag_pult_TX_UART1 = 0; // флаг "яяяяяя" flag3_pult_TX_UART1 = 1; // флаг3 "яяяяяя" полный st_pult_TX_UART1 = 6; // счёт "яяяяяя" UCSR1B=0x00; // USART1 PORTD.1=0; // контроль }; } ///////////////////////// фильтр "яяяяяя" else { pult_TX_UART1[st_filtr_pult_TX_UART1] = UDR1; if (pult_TX_UART1[st_filtr_pult_TX_UART1] == filtr_pult_TX_UART1[st_filtr_pult_TX_UART1]) { st_filtr_pult_TX_UART1++; // счёт фильтр "яяяяяя" if (st_filtr_pult_TX_UART1 == 6) { st_filtr_pult_TX_UART1 = 0; flag_pult_TX_UART1 = 1; // флаг "яяяяяя" PORTD.1=1; // контроль }; } else { st_filtr_pult_TX_UART1 = 0; // счёт фильтр "яяяяяя" }; }; ///////////////////////// PORTD.0=0; // контроль } //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// void main(void) { //////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////// TFT Nokia 6300 (MC2PA8201) DDRA=0xFF; // Data PORTA=0x00; // Data DDRB.5=1; // RESET PORTB.5=1; // RESET DDRB.6=1; // D/C 1 – data, 0 – Function. PORTB.6=1; // D/C 1 – data, 0 – Function. DDRB.7=1; // WR PORTB.7=1; // WR ////////////////////////////////////////////// кнопки: DDRC.0=0; // меню вниз PORTC.0=1; // меню вниз DDRC.1=0; // меню + PORTC.1=1; // меню + DDRC.2=0; // меню - PORTC.2=1; // меню - DDRC.3=0; // меню вверх PORTC.3=1; // меню вверх DDRC.4=0; // Нагрузка PORTC.4=1; // Нагрузка DDRC.5=0; // Нагрузка PORTC.5=1; // Нагрузка DDRC.6=0; // Нагрузка PORTC.6=1; // Нагрузка DDRC.7=0; // Нагрузка PORTC.7=1; // Нагрузка ////////////////////////////////////////////// контроль: DDRD.0=1; // контроль PORTD.0=0; // контроль DDRD.1=1; // контроль 2 PORTD.1=0; // контроль 2 //////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////// UART1 - RX 1 DDRD.2=0; // UART1 - RX PORTD.2=1; // UART1 - RX // USART1 initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART1 Receiver: On // USART1 Transmitter: Off // USART1 Mode: Asynchronous // USART1 Baud Rate: 56000 UCSR1A=0x00; UCSR1B=0x90; UCSR1C=0x06; UBRR1H=0x00; UBRR1L=0x08; ////////////////////////////////////////////// Global interrupts: #asm("sei") //#asm("cli") ////////////////////////////////////////////// инициализация TFT Nokia 6300: // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. // 240 / 2 = 120 / 8 байт = 15 строк ////////////////////////////////////////////// RESET: //PORTB.7 = 1; // WR PORTB.5 = 0; // RES delay_ms(1); PORTB.5 = 1; // RES delay_ms(5); ////////////////////////////////////////////// Режим OLED 128x64 -SH1106 // SSD1309: SendCom(0x11); // Выход дисплея из спячки SendCom(0x29); // Включение дисплея delay_ms(1); SendCom(0x36); SendDat(0x60); // развёртка горизонтальная SendCom(0x3A); // Pixel Format SendDat(0b00000111); // 24 битный режим RGB ////////////////////////////////////////////// /* ////////////////////////////////////////////// CLS // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. // 240 / 2 = 120 / 8 байт = 15 строк kursor(0); fpp(160); kursor(1); fpp(160); kursor(2); fpp(160); kursor(3); fpp(160); kursor(4); fpp(160); kursor(5); fpp(160); kursor(6); fpp(160); kursor(7); fpp(160); kursor(8); fpp(160); kursor(9); fpp(160); kursor(10); fpp(160); kursor(11); fpp(160); kursor(12); fpp(160); kursor(13); fpp(160); kursor(14); fpp(160); ////////////////////////////////////////////// */ //////////////////////////////////////////////////////////////////////////////////////////// _1: while ( (flag3_pult_TX_UART1 == 0)&&(PINC.0) ) { }; // флаг3 полный //////////////////////////////////////////////////////////////////////////////////////////// pult > буфер menu = pult_TX_UART1[6]; // menu menu2 = pult_TX_UART1[7]; // menu2 s = pult_TX_UART1[8]; // s // S-метр p = pult_TX_UART1[9]; // p // аккум пульт g = pult_TX_UART1[10]; // g // аккум модель // 11 синхро ch = pult_TX_UART1[12]; // ch // частота pw = pult_TX_UART1[13]; // pw // мощность IP = pult_TX_UART1[14]; // IP // модель kontrol_TX_b = pult_TX_UART1[15]; // kontrol_TX_b kontrol_TX_b = (kontrol_TX_b << 8)|pult_TX_UART1[16]; // kontrol_TX_b // 17 синхро kontrol_RX_b = pult_TX_UART1[18]; // kontrol_RX_b kontrol_RX_b = (kontrol_RX_b << 8)|pult_TX_UART1[19]; // kontrol_RX_b kontrol_CRC_b = pult_TX_UART1[20]; // kontrol_CRC_b kontrol_CRC_b = (kontrol_CRC_b << 8)|pult_TX_UART1[21]; // kontrol_CRC_b f_buzer = pult_TX_UART1[22]; // флаг f_buzer // 23 синхро t = pult_TX_UART1[24]; // температура 0 t_MAX = pult_TX_UART1[25]; // температура MAX 0 t_MIN = pult_TX_UART1[26]; // температура MIN 0 f_obduv_ON = pult_TX_UART1[28]; // флаг обдув 0 ON // 29 синхро t1 = pult_TX_UART1[30]; // температура 1 // 35 синхро t2 = pult_TX_UART1[36]; // температура 2 t_MAX2 = pult_TX_UART1[37]; // температура MAX 2 t_MIN2 = pult_TX_UART1[38]; // температура MIN 2 f_obduv2_ON = pult_TX_UART1[40]; // флаг обдув 2 ON // 41 синхро t3 = pult_TX_UART1[42]; // температура 3 // 47 синхро obduv = pult_TX_UART1[48]; // обдув // 53 синхро pompa = pult_TX_UART1[54]; // помпа // 59 синхро kor0 = pult_TX_UART1[60]; // kor0 kor1 = pult_TX_UART1[61]; // kor1 kor2 = pult_TX_UART1[62]; // kor2 kor3 = pult_TX_UART1[63]; // kor3 // 65 синхро kor4 = pult_TX_UART1[66]; // kor4 kor5 = pult_TX_UART1[67]; // kor5 kor6 = pult_TX_UART1[68]; // kor6 kor7 = pult_TX_UART1[69]; // kor7 // 71 синхро MOTOR_L_MAX = pult_TX_UART1[72]; // MOTOR_L_MAX MOTOR_L_MIN = pult_TX_UART1[73]; // MOTOR_L_MIN MOTOR_R_MAX = pult_TX_UART1[74]; // MOTOR_R_MAX MOTOR_R_MIN = pult_TX_UART1[75]; // MOTOR_R_MIN // 77 синхро // 83 синхро //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// // контроль if (!PINC.0) { // 0 караблик: menu = 0; s=8; p=150; g=100; t=1; t1=11; t2=21; t3=31; IP=5; }; if (!PINC.1) { // меню 1: караблик menu = 1; }; if (!PINC.2) { // меню 2: связь menu = 21; ch=10; IP=5; kontrol_CRC_b=10; kontrol_TX_b=20; kontrol_RX_b=30; }; if (!PINC.3) { // меню 3: канал menu = 31; kor0=0; kor1=1; kor2=2; kor3=3; kor4=4; kor5=5; kor6=6; kor7=7; MOTOR_L_MAX=8; MOTOR_L_MIN=9; MOTOR_R_MAX=10; MOTOR_R_MIN=11; }; if (!PINC.4) { // меню 4: питание menu = 41; }; if (!PINC.5) { // меню 5: температура menu = 51; /////////////////// температура 0 модель MOTOR L t = 1; // температура 0 модель f_obduv_ON = 1; // флаг обдув 0 ON t_MAX = 2; // температура MAX 0 модель t_MIN = 3; // температура MIN 0 модель /////////////////// температура 1 модель MOTOR R t1 = 11; // температура 1 модель /////////////////// температура 2 модель ESC L t2 = 21; // температура 2 модель f_obduv2_ON = 1; // флаг обдув 2 ON t_MAX2 = 22; // температура MAX 2 модель t_MIN2 = 23; // температура MIN 2 модель /////////////////// температура 3 модель ESC R t3 = 31; // температура 3 модель }; if (!PINC.6) { // меню 6: зуммер menu = 61; f_buzer = 1; // флаг бузер -начальное 1 }; if (!PINC.7) { // меню 255: ОШИБКА EEPROM menu = 255; }; //////////////////////////////////////////////////////////////////////////////////////////// if (menu) {G_RGB = 255;} else {G_RGB = 0;}; ////////////////////////////////////////////////////////////////////// TFT Nokia 6300 // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. // 240 / 2 = 120 / 8 байт = 15 строк /////////////////////////////////////////////////////////////////////// menu TFT Nokia 6300: if (menu == 255) goto _255; // menu == 255: > ошибка EEPROM //menu > караблик "связь" "канал" "питание" "температура" "зуммер" if (menu > 59) goto _61; // меню 6: зуммер if (menu > 49) goto _51; // меню 5: температура if (menu > 39) goto _41; // меню 4: питание if (menu > 29) goto _31; // меню 3: канал if (menu > 19) goto _21; // меню 2: связь if (menu) goto _11; // меню 1: // караблик: 0 //////////////////////////////////////////////////////////////////////////////////////////// kursor(0); ///////////////////// антеннка: for (x=0;x<9;x++) { TX_byte(antenka[x]); }; // антеннка ///////////////////// уровень сигнала (S_metr): for (x=0;x<8;x++) { if (s>x)h = S_metr[x]; else h = 0b00000000; TX_byte(h); TX_byte(0); }; fpp(12); /////////////////////// // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. ////////////////////// мини картинка модель - кораблик: for (x=0;x<32;x++) { TX_byte(mini_kartinki_korablik_0[x]); }; fpp(12); LED('T'); LED('X'); fpp(6); //////////////////// шкала аккум пульт: // опорное 3,3V; + 5...8,4 V; 5/3,9 -99,000; 8,4/3,9 -166,000; // +62 hp = p; // hp - буфер шкала аккум пульт if (hp>99) hp = hp - 100; else hp=0; skala_0_ak(hp); fpp(6); //////////////////// аккум пульт 5 V ak_pult(p/2); // p - аккум пульт 5 V fpp(7); //TX_byte(0x44); kursor(1); //////////////////// // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. fpp(37); //////////////////// мини картинка модель - кораблик: for (x=0;x<32;x++) { TX_byte(mini_kartinki_korablik_1[x]); }; fpp(12); LED('R'); LED('X'); fpp(6); //////////////////// шкала аккум модель 1: // опорное 5V; + 7...13,2 V; 6.0/5,1 -70,000; 13.2/5,1 -132,000; // +62 hg = g; // hg - буфер шкала аккум модель if (hg>69) hg = hg - 70; else hg=0; skala_0_ak(hg); fpp(6); //////////////////// аккум модель 1: ak_model(g); // g - аккум модель 12 V fpp(1); //TX_byte(0x44); kursor(2); fpp(160); //TX_byte(0x44); kursor(3); ///////////////////// температура: t MOTOR L // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED(' '); LED('L'); fpp(7); ///////////////////// температура: t MOTOR L if (t) { st_1000(t); } // 0...999 else { LED('-'); LED('-'); LED('-'); }; fpp(20); ///////////////////// температура: t2 ESC L LED('E'); LED('S'); LED('C'); LED(' '); LED('L'); fpp(7); ///////////////////// температура: t2 ESC L if (t2) { st_1000(t2); } // 0...999 else { LED('-'); LED('-'); LED('-'); }; fpp(18); //TX_byte(0x44); kursor(4); ///////////////////// температура: t1 MOTOR R // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED('R'); fpp(7); ///////////////////// температура: t MOTOR L if (t1) { st_1000(t1); } // 0...999 else { LED('-'); LED('-'); LED('-'); }; fpp(20); ///////////////////// температура: t3 ESC R LED(' '); LED(' '); LED(' '); LED(' '); LED('R'); fpp(7); ///////////////////// температура: t3 ESC R if (t3) { st_1000(t3); } // 0...999 else { LED('-'); LED('-'); LED('-'); }; fpp(18); //TX_byte(0x44); kursor(5); fpp(160); //TX_byte(0x44); kursor(6); ///////////////////// IP: модель -начальное 1. // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. LED('C'); LED('O'); LED('N'); LED('N'); LED('E'); LED('C'); LED('T'); fpp(18); ///////////////////// IP модель -начальное 1. st_10(IP); // счётчик 0...9 fpp(94); //TX_byte(0x44); kursor(7); fpp(160); //TX_byte(0x44); kursor(8); /////////////////////// // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. LED('S'); LED('P'); LED('E'); LED('E'); LED('D'); fpp(30); LED('/'); fpp(94); //TX_byte(0x44); kursor(9); fpp(160); //TX_byte(0x44); kursor(10); /////////////////////// // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. LED('D'); LED('E'); LED('P'); LED('T'); LED('H'); fpp(30); LED('m'); fpp(94); //TX_byte(0x44); kursor(11); fpp(160); //TX_byte(0x44); kursor(12); //////////////////// // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. //////////////////// шкала BUNKER L: fpp(23); for (x=0;x<7;x++) { TX_byte(0b11111110); }; //////////////////// шкала BUNKER R: fpp(72); for (x=0;x<7;x++) { TX_byte(0b11111110); }; fpp(51); //TX_byte(0x44); kursor(13); //////////////////// // 160x120 = 19200 pic: цифра 5 + пробел 1 = 6 байт. 160/6=26 цифры/строка +4. //////////////////// шкала BUNKER L: for (x=0;x<30;x++) { TX_byte(0b01111111); }; fpp(6); LED('L'); fpp(6); LED('B'); LED('U'); LED('N'); LED('K'); LED('E'); LED('R'); fpp(6); LED('R'); fpp(6); //////////////////// шкала BUNKER R: for (x=0;x<30;x++) { TX_byte(0b01111111); }; fpp(28); //TX_byte(0x44); kursor(14); fpp(160); //TX_byte(0x44); goto _5; // LCD > //////////////////////////////////////////////////////////////////////////////////////////// _11: // меню 0: караблик //////////////////////////////////////////////////////////////////////////////////////////// kursor(0); //////////////////////// МЕНЮ КОРАБЛИК: LED('М'); LED('Е'); LED('Н'); LED('Ю'); LED(' '); LED('К'); LED('О'); LED('Р'); LED('А'); LED('Б'); LED('Л'); LED('И'); LED('К'); LED(':'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(1); if (menu == 1) LED('>'); // > else LED(' '); // /////////////////////// СВЯЗЬ LED('С'); LED('В'); LED('Я'); LED('З'); LED('Ь'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(2); if (menu == 2) LED('>'); // > else LED(' '); // /////////////////////// КАНАЛ LED('К'); LED('А'); LED('Н'); LED('А'); LED('Л'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(3); if (menu == 3) LED('>'); // > else LED(' '); // ////////////////////// ПИТАНИЕ LED('П'); LED('И'); LED('Т'); LED('А'); LED('Н'); LED('И'); LED('Е'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(4); if (menu == 4) LED('>'); // > else LED(' '); // ////////////////////// ТЕМПЕРАТУРА LED('Т'); LED('Е'); LED('М'); LED('П'); LED('Е'); LED('Р'); LED('А'); LED('Т'); LED('У'); LED('Р'); LED('А'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(5); if (menu == 5) LED('>'); // > else LED(' '); // ////////////////////// ЗУММЕР LED('З'); LED('У'); LED('М'); LED('М'); LED('Е'); LED('Р'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(6); fpp(128); kursor(7); fpp(128); goto _5; // LED > //////////////////////////////////////////////////////////////////////////////////////////// _21: // меню 1: связь //////////////////////////////////////////////////////////////////////////////////////////// kursor(0); ///////////////////// МЕНЮ СВЯЗЬ LED('М'); LED('Е'); LED('Н'); LED('Ю'); LED(' '); LED('С'); LED('В'); LED('Я'); LED('З'); LED('Ь'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(1); ///////////////////// антеннка: for (x=0;x<9;x++) { TX_byte(antenka[x]); }; // антеннка ///////////////////// уровень сигнала (S_metr): for (x=0;x<8;x++) { if (s>x)h = S_metr[x]; else h = 0b00000000; TX_byte(h); TX_byte(0); }; kursor(1); LED(' '); // " " ///////////////////// ЧACТОТА ВЫЗОВ LED('Ч'); LED('А'); LED('С'); LED('Т'); LED('О'); LED('Т'); LED('А'); LED(' '); LED('В'); LED('Ы'); LED('З'); LED('О'); LED('В'); LED(' '); LED(' '); LED(' '); fpp(2); st_10000(2400); // 0...9999 kursor(2); if (menu == 21) LED('>'); // > else LED(' '); // //////////////////// ЧACТОТА КАНАЛ LED('Ч'); LED('А'); LED('С'); LED('Т'); LED('О'); LED('Т'); LED('А'); LED(' '); LED('К'); LED('А'); LED('Н'); LED('А'); LED('Л'); LED(' '); LED(' '); LED(' '); fpp(2); st_10000(2400 + ch); // 0...9999 kursor(3); if (menu == 22) LED('>'); // > else LED(' '); // ///////////////////// IP МОДЕЛЬ LED('I'); LED('P'); LED(' '); LED('М'); LED('О'); LED('Д'); LED('Е'); LED('Л'); LED('Ь'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); ///////////////////// адрес nRF24L01 -начальное 1. st_10(IP); // счётчик 0...9 kursor(4); fpp(128); kursor(5); fpp(128); kursor(6); ///////////////////////// КОНТОЛЬ: LED('К'); LED('О'); LED('Н'); LED('Т'); LED('Р'); LED('О'); LED('Л'); LED('Ь'); LED(':'); fpp(20); ///////////////////////// CRC LED('C'); LED('R'); LED('C'); LED(' '); st_100000(kontrol_CRC_b); // счётчик 0...99999: kursor(7); ///////////////////////// TX LED('T'); LED('X'); LED(' '); st_100000(kontrol_TX_b); // счётчик 0...99999: fpp(32); //////////////////////// RX LED('R'); LED('X'); LED(' '); st_100000(kontrol_RX_b); // счётчик 0...99999: goto _5; // LCD > //////////////////////////////////////////////////////////////////////////////////////////// _31: // меню 2: MOTOR //////////////////////////////////////////////////////////////////////////////////////////// kursor(0); //////////////////////// MOTOR LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(1); if (menu == 31) LED('>'); // > else LED(' '); // //////////////////////// MOTOR_L_MAX LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED('-'); LED('L'); LED('-'); LED('M'); LED('A'); LED('X'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(MOTOR_L_MAX); kursor(2); if (menu == 32) LED('>'); // > else LED(' '); // //////////////////////// MOTOR_L_СРЕДН LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED('-'); LED('L'); LED('-'); LED('С'); LED('Р'); LED('Е'); LED('Д'); LED('Н'); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(kor0); kursor(3); if (menu == 33) LED('>'); // > else LED(' '); // //////////////////////// MOTOR_L_MIN LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED('-'); LED('L'); LED('-'); LED('M'); LED('I'); LED('N'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(MOTOR_L_MIN); kursor(4); if (menu == 34) LED('>'); // > else LED(' '); // //////////////////////// MOTOR_R_MAX LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED('-'); LED('R'); LED('-'); LED('M'); LED('A'); LED('X'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(MOTOR_R_MAX); kursor(5); if (menu == 35) LED('>'); // > else LED(' '); // //////////////////////// MOTOR_R_СРЕДН LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED('-'); LED('R'); LED('-'); LED('С'); LED('Р'); LED('Е'); LED('Д'); LED('Н'); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(kor2); kursor(6); if (menu == 36) LED('>'); // > else LED(' '); // //////////////////////// MOTOR_R_MIN LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED('-'); LED('R'); LED('-'); LED('M'); LED('I'); LED('N'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(MOTOR_R_MIN); kursor(7); fpp(128); goto _5; // LED > //////////////////////////////////////////////////////////////////////////////////////////// _41: // меню 3: питание //////////////////////////////////////////////////////////////////////////////////////////// kursor(0); //////////////////////// ПИТАНИЕ LED('П'); LED('И'); LED('Т'); LED('А'); LED('Н'); LED('И'); LED('Е'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(1); if (menu == 41) LED('>'); // > else LED(' '); // //////////////////////// ПИТАНИЕ 1 LED('П'); LED('И'); LED('Т'); LED('А'); LED('Н'); LED('И'); LED('Е'); LED(' '); LED('1'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(2); if (menu == 42) LED('>'); // > else LED(' '); // //////////////////////// ПИТАНИЕ 2 LED('П'); LED('И'); LED('Т'); LED('А'); LED('Н'); LED('И'); LED('Е'); LED(' '); LED('2'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(3); if (menu == 43) LED('>'); // > else LED(' '); // //////////////////////// ПИТАНИЕ 3 LED('П'); LED('И'); LED('Т'); LED('А'); LED('Н'); LED('И'); LED('Е'); LED(' '); LED('3'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(4); if (menu == 44) LED('>'); // > else LED(' '); // //////////////////////// ПИТАНИЕ 4 LED('П'); LED('И'); LED('Т'); LED('А'); LED('Н'); LED('И'); LED('Е'); LED(' '); LED('4'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(5); if (menu == 45) LED('>'); // > else LED(' '); // //////////////////////// ПИТАНИЕ 5 LED('П'); LED('И'); LED('Т'); LED('А'); LED('Н'); LED('И'); LED('Е'); LED(' '); LED('5'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(6); if (menu == 46) LED('>'); // > else LED(' '); // //////////////////////// ПИТАНИЕ 6 LED('П'); LED('И'); LED('Т'); LED('А'); LED('Н'); LED('И'); LED('Е'); LED(' '); LED('6'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(7); fpp(128); goto _5; // LCD > //////////////////////////////////////////////////////////////////////////////////////////// _51: // меню 4: температура //////////////////////////////////////////////////////////////////////////////////////////// kursor(0); //////////////////////// ТЕМПЕРАТУРА LED('Т'); LED('Е'); LED('М'); LED('П'); LED('Е'); LED('Р'); LED('А'); LED('Т'); LED('У'); LED('Р'); LED('А'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(1); if (menu == 51) LED('>'); // > else LED(' '); // //////////////////// MOTOR ОБДУВ LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED(' '); LED('О'); LED('Б'); LED('Д'); LED('У'); LED('В'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// флаг if (f_obduv_ON) {LED('O'); LED('N'); } // ON else {f_(2);}; // -- kursor(2); if (menu == 52) LED('>'); // > else LED(' '); // //////////////////// MOTOR MAX 0 LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED(' '); LED('M'); LED('A'); LED('X'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(t_MAX); kursor(3); if (menu == 53) LED('>'); // > else LED(' '); // //////////////////// MOTOR MIN 0 LED('M'); LED('O'); LED('T'); LED('O'); LED('R'); LED(' '); LED('M'); LED('I'); LED('N'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(t_MIN); kursor(4); if (menu == 54) LED('>'); // > else LED(' '); // //////////////////// ESC ОБДУВ LED('E'); LED('S'); LED('C'); LED(' '); LED('О'); LED('Б'); LED('Д'); LED('У'); LED('В'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// флаг if (f_obduv2_ON) {LED('O'); LED('N'); } // ON else {f_(2);}; // -- kursor(5); if (menu == 55) LED('>'); // > else LED(' '); // //////////////////// ESC MAX 2 LED('E'); LED('S'); LED('C'); LED(' '); LED('M'); LED('A'); LED('X'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(t_MAX2); kursor(6); if (menu == 56) LED('>'); // > else LED(' '); // //////////////////// ESC MIN 2 LED('E'); LED('S'); LED('C'); LED(' '); LED('M'); LED('I'); LED('N'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// интдикатор st_1000(t_MIN2); kursor(7); fpp(128); goto _5; // LCD > //////////////////////////////////////////////////////////////////////////////////////////// _61: // меню 5: зуммер //////////////////////////////////////////////////////////////////////////////////////////// kursor(0); //////////////////////// ЗУММЕР LED('З'); LED('У'); LED('М'); LED('М'); LED('Е'); LED('Р'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(1); //////////////////////// ЗУММЕР if (menu == 61) LED('>'); // > else LED(' '); // LED('З'); LED('У'); LED('М'); LED('М'); LED('Е'); LED('Р'); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); LED(' '); //LED(' '); //LED(' '); fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); /////////////////// флаг if (f_buzer) {LED('O'); LED('N');} // ON else {f_(2);}; // --- //fpp(2); //SPDR=0b01000100; while(!(SPSR & (1<<7))); SPDR=0b01000100; while(!(SPSR & (1<<7))); kursor(2); fpp(128); kursor(3); fpp(128); kursor(4); fpp(128); kursor(5); fpp(128); kursor(6); fpp(128); kursor(7); fpp(128); goto _5; // LED > //////////////////////////////////////////////////////////////////////////////////////////// _255: //menu = 255: > ОШИБКА EEPROM //////////////////////////////////////////////////////////////////////////////////////////// kursor(0); fpp(128); // kursor(1); fpp(128); // kursor(2); fpp(128); // kursor(3); // fpp(24); LED('О'); LED('Ш'); LED('И'); LED('Б'); LED('К'); LED('А'); fpp(8); LED('E'); LED('E'); LED('P'); LED('R'); LED('O'); LED('M'); fpp(24); kursor(4); fpp(128); // kursor(5); fpp(128); // kursor(6); fpp(128); // kursor(7); fpp(128); // goto _5; // LCD > //////////////////////////////////////////////////////////////////////////////////////////// _5: // LED > flag3_pult_TX_UART1 = 0; // flag3_pult_TX_UART1 полный UCSR1B=0x90; // USART1 > RX goto _1; // > цикл //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// }