🇩🇪
void writeLCDRomData(const uint8_t const_c){ //für printOut
[sub] extern uint8_t last_c;[/sub]
[sub] uint8_t c;[/sub]
[sub] [/sub]
[sub] LCDpos l_pos;[/sub]
[sub] uint8_t zeile, spalte, tab;[/sub]
[sub] [/sub]
[sub] c= const_c;[/sub]
[sub] /*[/sub]
[sub] if (last_c=='\t'){[/sub]
[sub] last_c =0;[/sub]
[sub] l_pos= LCD_wherexy();[/sub]
[sub] tab= c-0x30; //0x30 muß voher addiert werden , ohne Prüfung!![/sub]
[sub] zeile = (l_pos.zeile);[/sub]
[sub] LCD_gotoxy(tab,zeile);[/sub]
[sub] }[/sub]
[sub] */[/sub]
[sub] switch (last_c){[/sub]
[sub] case '\t':[/sub]
[sub] last_c =0;[/sub]
[sub] l_pos= LCD_wherexy();[/sub]
[sub] tab= c-0x30; //0x30 muß voher addiert werden , ohne Prüfung!![/sub]
[sub] zeile = (l_pos.zeile);[/sub]
[sub] LCD_gotoxy(tab,zeile);[/sub]
[sub] break;[/sub]
[sub] // case'\v': //[/sub]
[sub] // last_c =0;[/sub]
[sub] // zeile = c-0x30;[/sub]
[sub] // LCD_gotoxy(0,zeile);[/sub]
[sub] // break;[/sub]
[sub] default:[/sub]
[sub] switch (c){[/sub]
[sub] case '\n': //setzt crsr auf letze Spalte (nur zähler)[/sub]
[sub] akt_pos.nok=1;[/sub]
[sub] letzte_pos.spalte_nok=19;[/sub]
[sub] // LCD_cr(); //hier wird sonst die letzte Zeile immer gescrollt, daher nicht genutzt[/sub]
[sub] break;[/sub]
[sub][/sub]
[sub] case '\r':[/sub]
[sub] break; //tue nichts[/sub]
[sub][/sub]
[sub] case '\t': //tabulator aktuelle Zeile pos 10[/sub]
[sub] last_c ='\t';[/sub]
[sub] break;[/sub]
[sub] [/sub]
[sub] //case '\v':[/sub]
[sub] // last_c ='\v';[/sub]
[sub] // break;[/sub]
[sub] [/sub]
[sub] case '\f':[/sub]
[sub] LCD_clrhome;[/sub]
[sub] break;[/sub]
[sub][/sub]
[sub] case '°':[/sub]
[sub] c = 0xdf;[/sub]
[sub] break;[/sub]
[sub][/sub]
[sub] case 'Ö':[/sub]
[sub] case 'ö': [/sub]
[sub] c = 0xef;[/sub]
[sub] break;[/sub]
[sub][/sub]
[sub] case 'Ü':[/sub]
[sub] case 'ü': [/sub]
[sub] c = 0xf5;[/sub]
[sub] break;[/sub]
[sub][/sub]
[sub] case'Ä':[/sub]
[sub] case'ä':[/sub]
[sub] c = 0xe1;[/sub]
[sub] break;[/sub]
[sub][/sub]
[sub] case 'µ':[/sub]
[sub] c = 0xe4;[/sub]
[sub] break;[/sub]
[sub][/sub]
[sub] case 'ß':[/sub]
[sub] c = 0xe2; [/sub]
[sub] break;[/sub]
[sub] }[/sub]
[sub] if ((c >31) && (last_c !='\t')){ //keine Steuerzeichen[/sub]
[sub] //_______________________________________[/sub]
[sub] //if (c !='\n') //damit nicht zweimal ausgeführt[/sub]
[sub] if (akt_pos.nok == 1)[/sub]
[sub] if (letzte_pos.spalte_nok == 19) //spalte =19, mr=0 also nicht durch gotoxy usw gesetzt, heißt letzte position gültig[/sub]
[sub] {[/sub]
[sub] LCD_cr();[/sub]
[sub] }[/sub]
[sub] //_______________________________________[/sub]
[sub] writeLCDData(c);[/sub]
[sub] }[/sub]
[sub] //break; //von default switch (last_c) nicht notwendig[/sub]
[sub] }[/sub]
}
case ausg_hk2:
vl_ist=ntohs( UBAMonitorFast.tmpVLIst );
rl_ist=ntohs( UBAMonitorFast.tmpRL );
ww_ist=ntohs( UBAMonitorFast.tmpWW );
atemp=ntohs( UBAMonitorSlow.temperaturAussen );
LCD_clrhome;
stdOut_mr =stdOut;
stdOut = source_lcd;
printOut(
"Vl_S:%bu\t"
"Vl_I:%0i\r"
"Rl_I:%0i\t"
"AT:%0i°C\r"
"P_Mx:%bu\t"
"P_I:%bu\r"
"WW_I:%0i\t"
"SC:%c%c",
UBAMonitorFast.tmpVLSoll,
vl_ist, //ntohs( UBAMonitorFast.tmpVLIst ),
rl_ist, //ntohs( UBAMonitorFast.tmpRL ),
atemp, //ntohs( UBAMonitorSlow.temperaturAussen ),
UBAMonitorFast.leistungMax,
UBAMonitorFast.leistungIst,
ww_ist, //ntohs( UBAMonitorFast.tmpWW ),
UBAMonitorFast.serviceCode
,
UBAMonitorFast.serviceCode[1]);
stdOut=stdOut_mr;
break;