Problem: PORTB Konfigurieren
Dienstag, 22. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  PIC Mikrocontroller Allgemein  |  Schnittstellen (Allgemein)  |  Problem: PORTB Konfigurieren « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Problem: PORTB Konfigurieren  (Gelesen 1336 mal)
 
bernd60
Newbie
*
Offline Offline

Beiträge: 22


ich bastele an PICs f


Profil anzeigen WWW
« am: Februar 27, 2010, 19:53:45 »

Hallo,
ich arbeite mit dem PIC 16F870.

Ich habe Probleme damit, das PortB zu konfigurieren.
Es sollen alle Pins PortB Outputs sein. Deshalb hab ich TRISB Bits alle auf 0 gesetzt. Auch meine ich, dass ich die anderen beiden wichtigen Register INTCON und OPTION_REG richtig gesetzt habe.
Hier der relevante Code, der den PIC konfiguriert.

Code:
;##########################################################
;                    Hauptprogramm
;##########################################################
start
;***************************************
;  INTCON und OPTION_REG konfigurieren
;***************************************
banksel OPTION_REG
clrf OPTION_REG
bcf OPTION_REG, T0CS ; Timer0 läuft mit Interner Clock
bcf     OPTION_REG, NOT_RBPU  ; PORTB Pull-ups an

banksel INTCON
clrf INTCON ; alle Interrupt-Enabales aus
bsf INTCON, T0IE ; nur TIMER0 Interrupt
;******************************
; PORTs konfigurieren
;******************************
; Output = 0
; Input  = 1
Banksel TRISA
movlw B'00010101' ; PortA konfig
movwf TRISA

movlw B'00000000' ; PortB konfig
movwf TRISB ; alles outputs

movlw B'01111011' ; PortC konfig
movwf TRISC

;*****************************************
; PWM-Modul vorbereiten, PWM benutzt Timer2
;*****************************************
; Vorteiler 1:1 und Timer2 einschalten
banksel T2CON
        CLRF    T2CON           ; Vorteiler 1:1
        BSF     T2CON,TMR2ON    ; Timer2 ein
; Frequenz auf 4 kHz (wenn 4 Mhzosc = 1 MHztakt) einstellen
        Banksel PR2
        MOVLW   0x7F            ; 1000/128=8KHz
        MOVWF   PR2             ;
; Tastverhältnis initialisieren
banksel CCPR1L
clrf CCPR1H
movlw 0x3F
        movwf   CCPR1L          ; PWM-output
; CCP1 Module als im PWM MODE betreiben
        CLRF    CCP1CON         ; alles clear
        BSF     CCP1CON,CCP1M3  ; CCP1-Modus PWM-Mode
        BSF     CCP1CON,CCP1M2  ; CCP1-Modus PWM-Mode

;*****************************
;     meine Parameter initialisieren
;*******************************
clrf    ISR

Ich habe meine Schaltung auf einem Steckboard aufgebaut.

Alle anderen Ports (A+C) hab ich erfolgreich mit Inputs und Outputs konfiguriert.

Nun das Problem:
das ganze PORTB funktioniert nicht so wie soll.
Und ich beobachte, daß obwohl RB3 Output sein sollte, dass der PIC mit Resets oder Interrupts reagiert, wenn ich an dem Port irgendetwas mache, zB nur ein Kabel stecke und dieses anfasse.

Im datenblatt steht ja, daß mit RB-Pins Interrupts ausgelöst werden können, aber nur wenn sie als Inputs definiert sind. Mit TRISB ='alles 0' sollten Interrupts aber doch ausgeschaltet sein.

was mache ich da nur falsch.  Weinen Weinen
Bernd.

Gespeichert

ich bastele an PICs f
Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #1 am: Februar 27, 2010, 20:50:34 »

Hallo Bernd,

hast du in der Konfig LVP (Low Voltage Programming) deaktiviert?

Gruß
Stefan
Gespeichert

bernd60
Newbie
*
Offline Offline

Beiträge: 22


ich bastele an PICs f


Profil anzeigen WWW
« Antworten #2 am: März 01, 2010, 12:02:06 »

Hi Stefan,
ohhh danke, das scheints gewesen zu sein. ich hatte LVP_ON gesetzt:

ALT
Code:
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _RC_OSC & _WRT_ENABLE_ON & _LVP_ON & _CPD_OFF   

NEU
Code:
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _RC_OSC & _WRT_ENABLE_ON & _LVP_OFF & _CPD_OFF   

danke für die Hilfe
Bernd.
Gespeichert

ich bastele an PICs f
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.04 Sekunden mit 19 Zugriffen.
 
Top! Top!