Здравствуйте
кто сможет помочь
есть таблица для графо-генератора, и есть функция которая вызывается в момент запроса символа на индикатор
http://yandex.ru/clck/jsredir?from=yand ... 1926211216
есть немого лишнего, к каждому разряду -цвета нужно указывать таблицу, а это съедает память (еще нужно запихнуть для atmega8 еще и протокол mod_bus с фиксированным адресом , и читать указанные регистры, и исходя из значений выводить число, норма =зеленый, повышенный =оранжевый , критично = красный)
в конкретном примере значение числа производилось из чтение регистра секунд ds1307
кусочек кода для оценки что получилось
pwm_=2;
//delay_ms(1000);
red_x10=red_x1='_'; green_x10='S';green_x1='T';green_x1='.';
delay_ms(1000);
pwm_=3;
BlkScrAll(); pwm_=1;
while (1) {
read_date_time(&sec,&minut,&hour,&day,&date,&month,&year);
ds1307_rddata=bcd2bin(ds1307_read(0x0));
//*
//используются для сравнения переменных, чисел (констант) и выражений.
//x < y // X меньше Y
//x > y // больше
//x <= y // меньше или равно
//x >= y // больше или равно
//x == y // равно
//x != y /* не равно
//| | // "ИЛИ" - только "ложь" и "ложь"
// дают "ложь"
//&& // "И" - только "истина" и "истина"
// дают "истина"
//! "НЕ" - логическое отрицание
//////////////////////////////////////////
// green_x1=((rc5_command));
// green_x10=((rc5_device));
//// green_x1=((rc5_command)10);
//// green_x10=((rc5_device)10);
////number_r(rc5_adr_out);
//green_x10_dp=(rc5_trg_out); red_x1_dp=(RC5_buffer [0]); green_x1_dp=(RC5_buffer [1]);
// BlkScrAll();
//
if((ds1307_rddata)<50) {
// green_x1=((ds1307_rddata)%10);
// green_x10=((ds1307_rddata)/10);
number_g(ds1307_rddata);
if ((ds1307_rddata) & (0x01) ) {green_x1_dp=(1);}
else {green_x1_dp=(0);};
}
else {
// red_x1=((ds1307_rddata)%10);
// red_x10=((ds1307_rddata)/10);
if ((ds1307_rddata) & (0x01) ) {green_x1_dp=(1);}
else {green_x1_dp=(0);};
number_r(ds1307_rddata);
}
if((ds1307_rddata)>44) {
// red_x1=((ds1307_rddata)%10);
// red_x10=((ds1307_rddata)/10);
// green_x1=((ds1307_rddata)%10);
// green_x10=((ds1307_rddata)/10);
number_y(ds1307_rddata);
if ((ds1307_rddata) & (0x01) ) {green_x1_dp=(1);}
else {green_x1_dp=(0);};
};
if((ds1307_rddata)>54) {
// BlkScrAll();
// red_x1=((ds1307_rddata)%10);
// red_x10=((ds1307_rddata)/10);
number_r(ds1307_rddata);
if ((ds1307_rddata) & (0x01) ) {green_x1_dp=(1);}
else {green_x1_dp=(0);}; };
if ((ds1307_rddata)==03 || PIND.2 == 0){;BlkScrAll();delay_ms(500);green_x10=(21);delay_ms(500);BlkScrAll();delay_ms(500);
green_x1=(((bcd2bin(ds1307_read(0x2))))%10);red_x1_dp=(1); green_x10=(((bcd2bin(ds1307_read(0x2))))/10);
delay_ms(1000);BlkScrAll();
BlkScrAll();delay_ms(500);number_g(bcd2bin(ds1307_read(0x1)));delay_ms(1000);BlkScrAll(); }
//// green_x1=red_x1=((bcd2bin(ds1307_read(0x0)))%10);
//red_x10=green_x10=((bcd2bin(ds1307_read(0x0)))/10);
delay_ms(1);
};
};