- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 2 von 2

Thema: PIC16F685 alle Ausgänge durchschalten?

  1. #1
    n00b
    Gast

    PIC16F685 alle Ausgänge durchschalten?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo, ich möchte alle Ausgänge an PORTC eines 16F685 auf 1 schalten. Dazu habe ich folgendes Programm geschrieben:

    Code:
    	#include <p16f685.inc>
    	
    	__CONFIG _PWRTE_ON & _WDT_OFF & _LP_OSC
    
    	cblock 0x20 
    	Test
    	endc 
    
    
    	ORG 0x00 
    	GOTO INITIALISIERUNG
    	ORG 0x04 
    	GOTO ISR
    	ORG 0x05
    
    INITIALISIERUNG
    
    ;internen 32khz Takt verwenden
    	banksel	OSCCON
    	bcf OSCCON,IRCF0
    	bcf OSCCON,IRCF1
    	bcf OSCCON,IRCF2
    	BCF	OSCCON, OSTS
    	BSF	OSCCON, LTS
    	BSF	OSCCON, SCS
    ;_______________________________
    
    ;PortC initialisieren
    	BCF STATUS,RP0
    	BCF	STATUS, RP1
    	CLRF	PORTC
    	BSF	STATUS,RP1
    	CLRF	ANSEL
    	BSF	STATUS,RP0
    	BCF STATUS,RP1
    	CLRF	TRISC
    ;----------------------portc initialisiert
    
    
    	banksel	PORTC
    ;	BSF	PORTC,0
    ;	BSF	PORTC,1
    ;	BSF	PORTC,2
    ;	BSF	PORTC,3	
    ;	BSF	PORTC,4
    ;	BSF	PORTC,5
    ;	BSF	PORTC,6
    ;	BSF	PORTC,7	
    	MOVLW	B'11111111'
    	MOVWF	PORTC
    	
    schleife:
    	goto schleife
    
    ISR
    	retfie
    
    	END
    Das habe ich simuliert, jedoch wird statt "1111111" nur "00101111" ausgegeben. Wenn ich statt
    MOVLW "B'1111111'
    MOVWF PORTC"
    8 mal BSF PORTC,0;7 schreibe steht am Ende in PORTC: "00111111".
    Die Initalisierung von PORTC habe ich genau so geschrieben, wie sie im Datenblatt steht. Brauche ich noch eine zusätzliche Initialisierung, in der ich vielleicht einen Analogeingang oder so umschalten muss, damit es funktioniert? Leider habe ich dazu noch nichts gefunden.
    Oder ist es gar nicht möglich bei diesem PIC alle Ausgang auf 1 zu schalten?

    Ich bedanke mich schon im Voraus und wünsche allen ein frohes Weihnachtsfest!

    Viele liebe Grüße,
    n00b

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.10.2004
    Ort
    Nordschwarzwald
    Alter
    41
    Beiträge
    506
    8 mal BSF PORTC,0;7 schreibe steht am Ende in PORTC: "00111111".
    Steht das wirklich in PORTC oder sind nur die Pins high?
    Eigentlich sollte das so gehen, wie du es gemacht hast - im Datenblatt steht nix, was dem entgegenspricht...
    Die Portinitialisierung sollte so passen, wobei und ANSEL eigentlich nicht unbedingt brauchst - das ist beim ausgeben egal...
    TRISC muss auf 0x00 und PORTC auf 0xFF und dann sollten alle Pins oben sein. Vor dem MOVWF TRISC ein banksel TRISC und vor dem MOVWF PORTC ein banksel PORTC und im Prinzip war das dein ganzes Programm...

    Frohe Weihnachten,
    Stefan

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen