Liste der Anhänge anzeigen (Anzahl: 2)
Fotometer & MeterDemo
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!):
Code:
+ ------- ------- ------- -------+
|0 256 512 768 |
| # |987
| # |848
+--------------------------------+
Und hier ist das Fotometer (für Asuro Library 2.70rc3):
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;
}
Das MeterDemo.hex-Attachment veranschaulicht den Performance-Einfluß ohne und mit numerischer Werteausgabe (Endlosdemo).
Liste der Anhänge anzeigen (Anzahl: 1)
jezt lauft er wieder der fotometer hier ist meine anzeige rechts die striche blinken