- Labornetzteil AliExpress         
Ergebnis 1 bis 4 von 4

Thema: Fotometer & MeterDemo

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199

    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).
    Angehängte Dateien Angehängte Dateien
    Gruß, Hermann.
    myIrAsuro.Bild hier  

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress