PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fotometer & MeterDemo



HermannSW
26.04.2007, 23:37
Hallo,

hier zur grafischen Ausgabe der Fotosensorwerte ein Fotometer (siehe hier (http://de.wikipedia.org/wiki/Fotometer)), welches auch als Odometer (siehe hier (http://de.wikipedia.org/wiki/Odometer)) angepaßt werden könnte.

So sieht ein Output mit numerischer Ausgabe (abschaltbar) der Werte aus (Terminalemulation auf ANSI stellen!):
+ ------- ------- ------- -------+
|0 256 512 768 |
| # |987
| # |848
+--------------------------------+


Und hier ist das Fotometer (für Asuro Library 2.70rc3):
#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).

fotomarco
27.04.2007, 00:07
erst hat er mir werte angelegt wie du oben zeigts und rechts zwei striche jezt aber nur VLVLVLVLVLVLVL

fotomarco
27.04.2007, 00:13
jezt lauft er wieder der fotometer hier ist meine anzeige rechts die striche blinken

damaltor
27.04.2007, 01:42
VLVLVLVL bedeutet das der akku leer ist... Voltage Low. dabei flackert die statusled.