Deklaration



  • hallo!

    wie muss ich die !bit_test(port,pin) - funktion deklarieren, damit ich keine fehlermeldung mehr erhalte?wenn ich sie als unsigned char !bit_test deklariere,dann wird mir als fehler angezeigt, dass keine bezeichner vorhanden sind!

    //wait_for_release (PORTB,0)
    
    void wait_for_release(char port, short pin)
    {
    	char x=0;
    	while(x !=5)
    	{
    	if (!bit_test(port,pin))
    		x++;
    	else x=0;
    
    	DelayMs(50);
    	}
    }
    
    //wait_for_press (PORTB,0)
    
    void wait_for_press(char port, short pin)
    {
    	char x=0;
    	while (x!=5)
    	{
    	if (!bit_test(port,pin))
    		x=0;
    
    	else x++;
    
    	DelayMs(50);
    	}
    }
    
    void entprellung (void)
    {
    	while(1)
    	{
    		if (RB5==0 || RB4==0 || RB3==0 || RB2==0)
    
    		wait_for_release (char port, short pin);
    		wait_for_press (char port, short pin);
    
    		else 
    		delayMs(100);
    	}
    }
    


  • achso, die anweisungen sind dazu da, um taster zu entprellen...



  • Eine Funktion "!bit_test" gibt es nicht - wenn, dann heißt die Funktion bit_test() und sollte eine zur Verwendung passende Signatur haben (also z.B. int bit_test(char,short);

    (und dann solltest du dir erstmal Gedanken darüber machen, was diese Funktion eigentlich bewirken soll)



  • alles klar die deklaration hab ich hinbekommen!aber nun bekomm ich syntaxfehler, wenn ich die funktionen wait_for_release(char,short) und wait_for_press(char,short) in der entprellungsfunktion aufrufe!ich muss doch die parameter übergeben oder?
    programmiere zum ersten mal...



  • Ja, beim Aufruf mußt du auch nicht die Parametertypen angeben - das heißt dort einfach "wait_for_release(port,pin);" (wobei du irgendwo die korrekten Werte für port und pin setzen solltest).



  • bob_mplab schrieb:

    achso, die anweisungen sind dazu da, um taster zu entprellen...

    guckstu: http://www.ganssle.com/debouncing.pdf (page 20) ist viel einfacher, oder das hier: http://www.mikrocontroller.net/topic/6492
    🙂
    ##########################
    ##########################
    ##########################
    ##########################
    ##########################
    ##########################
    ##########################
    ##########################
    ##########################
    ##########################
    ##########################
    ##########################


Anmelden zum Antworten