Hallo,
hier zur grafischen Ausgabe der Fotosensorwerte ein Fotometer (siehe hier), welches auch als Odometer (siehe hier) angepaßt werden könnte.
So sieht ein Output mit numerischer Ausgabe (abschaltbar) der Werte aus (Terminalemulation auf ANSI stellen!):Und hier ist das Fotometer (für Asuro Library 2.70rc3):Code:+ ------- ------- ------- -------+ |0 256 512 768 | | # |987 | # |848 +--------------------------------+Das MeterDemo.hex-Attachment veranschaulicht den Performance-Einfluß ohne und mit numerischer Werteausgabe (Endlosdemo).Code:#include <asuro.h> char ticks1024[]="+ ------- ------- ------- -------+\r\n"\ "|0 256 512 768 |\r\n"\ "|# |\r\n"\ "|# |\r\n"\ "+--------------------------------+\r\n"; int ol,or; void CSI(void) { UartPutc(0x1B); UartPutc('['); } void CLR(void) { CSI(); SerPrint("2J"); } void GTO(int row, int col) { CSI(); PrintInt(row); UartPutc(';'); PrintInt(col); UartPutc('H'); } void display1024(unsigned left, unsigned right, int numbers) { if (numbers) { GTO(3,35); PrintInt(left); SerPrint(" "); GTO(4,35); PrintInt(right); SerPrint(" "); } left/=32; if (left>31) left=31; if (left!=ol) { GTO(3,2+ol); UartPutc(' '); GTO(3,2+left); UartPutc('#'); ol=left; } right/=32; if (right>31) right=31; if (right!=or) { GTO(4,2+or); UartPutc(' '); GTO(4,2+right); UartPutc('#'); or=right; } } void head1024(void) { CLR(); SerPrint(ticks1024); ol=or=0; } int main(int argc, char *argv[]) { unsigned int lineData[2]; Init(); FrontLED(ON); head1024(); while (1) { LineData(lineData); display1024(lineData[LEFT],lineData[RIGHT],1); } return 0; }







Zitieren

Lesezeichen