mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Eingang lesen beim PIC


Autor: Karlheinz Druschel (kdruschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein kleines Problerm beim Lesen eines Eingangs bei einem 
PIC16F887.
Zum Testen will ich einfach nur eine LED leuchten lassen wenn ein Taster 
gedrückt wird. Also was ganz banales. Die LED hängt an Portbit D7, sie 
leuchtet auch wenn ich sie per Software ansteuere. Der Taster hängt an 
B4 und ist so verdrahtet, dass er im gedrückten Zustand 5 V an den Pin 
legt. Mit dem Multimeter gemessen funktioniert das auch. Aber die 
Software will halt nicht.....
/******************************************************************************/
/* Files to Include                                                           */
/******************************************************************************/

#include <xc.h>         /* XC8 General Include File */
#define _XTAL_FREQ 20000000

#include  <pic.h>
//#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>        /* For uint8_t definition */
#include <stdbool.h>       /* For true/false definition */
#include "Main.h"

/******************************************************************************/
/* User Global Variable Declaration                                           */
/******************************************************************************/

//
// PROCESSOR : PIC16F877A

#pragma config FOSC = INTRC_NOCLKOUT// Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = ON       // RE3/MCLR pin function select bit (RE3/MCLR pin function is MCLR)
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = ON       // Brown Out Reset Selection bits (BOR enabled)
#pragma config IESO = ON        // Internal External Switchover bit (Internal/External Switchover mode is enabled)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
#pragma config LVP = OFF        // Low Voltage Programming Enable bit (RB3 pin has digital I/O, HV on MCLR must be used for programming)

// CONFIG2
#pragma config BOR4V = BOR40V   // Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
#pragma config WRT = OFF        // Flash Program Memory Self Write Enable bits (Write protection off)



int main()
{
    Init();

//    PORTDbits.RD7 = 1;
    
    while (1)
    {
        if (PORTBbits.RB4)
            PORTDbits.RD7 = 1;
        else
            PORTDbits.RD7 = 0;
    }
}

/////////////////////////////////////////////////////////////////////
// Initialisierungen
/////////////////////////////////////////////////////////////////////
void Init(void)
{
    TRISB = 0xff;
     PORTD = 0x0;    
    TRISD = 0x0;
    TRISE = 0xff;
}

Autor: Volker SK (vloki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann der Eingang auch analog verwendet werden?
Dann ist das im Normalfall standardmäßig aktiviert!
In Datasheet ist da normalerweise auf der ersten Seite (zum Port) eine 
hervorgehobene "Note"

: Bearbeitet durch User
Autor: Christian Müller (Firma: magnetmotor.ch) (chregu) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Eingang kann auch Analogeingang sein. Prüfe im Datenblatt, ob im 
ANSELH Register auf Digital I/O eingestellt werden muss.

Gruss Chregu

Autor: Karlheinz Druschel (kdruschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yap, das war's
1000Dank

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.