Hallo zusammen, Ich möchte mit meinem 18F2550 einen Taster abfragen, wie mach ich das am besten? (würde die steigende Flanke irgendwie auswerten, aber wie ist die Frage) Habe jetzt schon recht viel gelesen, allerdings nichts passendes zum C18. z.B. PortB RB0 als Eingang glaube ich habe auch was von Widerständen an PortB gelesen. Danke für eure Mühe!!! Gruß Chris
Am Besten so: http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen Ob nun AVR oder PIC ist absolut egal... Schöne Grüße, Alex
#define mInitAllSwitches() TRISAbits.TRISA5=1;TRISEbits.TRISE0=1;TRISEbits.TRISE1=1;TRISEbits.TRISE 2=1; #define mInitSwitch1() TRISAbits.TRISA5=1; #define mInitSwitch2() TRISEbits.TRISE0=1; #define mInitSwitch3() TRISEbits.TRISE1=1; #define mInitSwitch4() TRISEbits.TRISE2=1; #define sw1 PORTAbits.RA5 #define sw2 PORTEbits.RE0 #define sw3 PORTEbits.RE1 #define sw4 PORTEbits.RE2 #pragma udata unsigned char old_sw1,old_sw2,old_sw3,old_sw4; #pragma code void Init_TASTEN(void) { TRISAbits.TRISA5=1; TRISEbits.TRISE0=1; TRISEbits.TRISE1=1; TRISEbits.TRISE2=1; old_sw1 = sw1; old_sw2 = sw2; old_sw3 = sw3; old_sw4 = sw4; } BOOL Switch1IsPressed(void) { if(sw1 != old_sw1) { old_sw1 = sw1; // Save new value if(sw1 == 0) // If pressed return TRUE; // Was pressed }//end if return FALSE; // Was not pressed }//end Switch1IsPressed Liest die falende Flanke aus. if(Switch1IsPressed) { Tu irgendwas; } Gruss Sascha
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.