Windgeschindigkeit berechnen über eigene Hardware



  • Hi

    ich möchte mir die windgeschwindigkeit anzeigen lassen über meine eigene gebaute hardware... anhand des inputs und und delays muesste es doch gehen ,oder ??? ich komme einfach net weiter ... wäre echt nett wenn sich das mal jemand anschauen könnte ... ahso hätte ich fast vergessen ... ich hätte die windgeschindigkeit auch gern in knoten nicht nur in kmh . schonmal danke im vorraus ...

    #include <dos.h>
    #include <conio.h>
    #include <stdio.h>
    
    struct  time t;
    
    struct zeit {
    	unsigned char  ti_min;   /* Minuten               */
    	unsigned char  ti_hour;  /* Stunden               */
    	unsigned char  ti_hund;  /* Hundertstelsekunden   */
    	unsigned char  ti_sec;   /* Sekunden              */
    };
    
    void main (void)
    
    {
    
     unsigned short EING,WIND;
     int i=0,n;
     int x1,y1,x2,y2;
     int h,min,sec,hund;
     clrscr();
    
     gotoxy(12,4);
     printf("Abbrechen mit Tastendruck\n\n");
    
     for (x1=0;x1<=60;x1++)
     {
    	gotoxy(10+x1,2);
    	printf("*");
     }
    
     for (y1=0;y1<=10;y1++)
     {
    	gotoxy(10,2+y1);
    	printf("*");
     }
    
     for (x2=0;x2<=60;x2++)
     {
    	gotoxy(10+x2,12);
    	printf("*");
     }
    
     for (y2=0;y2<=10;y2++)
     {
    	gotoxy(10+x1,12-y2);
    	printf("*");
     }
    
     do
     {
    
    	EING=(inportb(0x379)>>3)&0x01;
    
    	gettime(&t);
    //	printf("\nThe current time is: %2d:%02d:%02d.%02d\n",
    //		t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);
    //	printf("\n\n\n\n\n\n\nTimer: %2d:%02d:%02d.%02d\n",
    //	t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);
    
    	h = t.ti_hour;
    	min = t.ti_min;
    	sec = t.ti_sec;
    	hund = t.ti_hund;
    
    /*	 if (EING!=1 && EING!=0)
    	 {
    		 gettime(&t);
    		 printf("\n\nStart: %d",i++);
    	 }
     */
    
    	WIND=EING;
    
    	gotoxy (12,6);
    	printf ("Die Windgeschwindigkeit betr„gt :  %d  m/s ", WIND);
    	outportb (0x378,WIND);
     }
     while (!kbhit());
    }
    


  • 1. was ist denn das Problem? Falsche Ergebnisse, kannst du nicht kompilieren, das Programm tut nicht, was es soll, Programm abgestürtzt????

    2. Dein Code ist nicht ANSI C (und du bist im ANSI C Forum)



  • Gast23 schrieb:

    for (x1=0;x1<=60;x1++)
     {
    	gotoxy(10+x1,2);
    	printf("*");
     }
    
     for (y1=0;y1<=10;y1++)
     {
    	gotoxy(10,2+y1);
    	printf("*");
     }
    
     for (x2=0;x2<=60;x2++)
     {
    	gotoxy(10+x2,12);
    	printf("*");
     }
    
     for (y2=0;y2<=10;y2++)
     {
    	gotoxy(10+x1,12-y2);
    	printf("*");
     }
    

    Wie wärs mit:

    for (i=0;i<=60;i++)
     {
    	gotoxy(10+i,2);
             printf("*");
    	gotoxy(10+i,12);
             printf("*");
     }
    
     for (i=0;i<=10;i++)
     {
    	gotoxy(10,2+i);
    	printf("*");
    	gotoxy(71,2+i);
    	printf("*");
     }
    

    Was spricht eigentlich dagegen, statt eine neue Structur zu definieren, die struct time zu benutzen?

    1 Knoten = 1 Seemeile/Stunde = 1,852 km/h = 0,51444 m/s (Wikipedia)

    Zu den anderen Fragen kann ich nichts sagen, da ich nicht weiß, welche Daten deine Hardware wie liefert.



  • also meine Hardware liefert nur ne "0" oder eine "1" und ich möchte damit irgendwie die windgeschwindigkeiut errechnen ... ich hab mir folgendes gedacht das ich ne startzeit habe und eine endzeit ... und ist der zwischenzeit möchte ich halt die inpuls die ich bekomme zählen und daraus die geschwindigkeit errechnen .


Anmelden zum Antworten