mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 18F2550 Eingänge abfragen mit C18


Autor: Chris __ (jetronic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Alex22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am Besten so:
http://www.mikrocontroller.net/articles/AVR-Tutori...

Ob nun AVR oder PIC ist absolut egal...

Schöne Grüße,
Alex

Autor: Sascha_Focus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.