www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC16F88 PORTA reagiert nicht


Autor: Jonny B. (jonnybgood)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich verwende bei meiner Schaltung den internen Komparator des PICs, und 
initialisiere diesen durch beschreiben des CMCON Registers.
Da die Schaltung nicht wie geplant funktioniert, habe ich das ganze 
Programm im Debug Modus laufen lassen, und die "Watch" funktion zeigt 
mir, das nachdem das Register CMCON beschrieben wurde das PORTA einfach 
auf Null gesetzt wird, und auch im weiteren Verlauf keine Änderungen 
mehr annimmt.
Kann mir jemand sagen woran das liegt?

Danke...

PS: Im Anhang befindet sich die Initialisierung meines Programms.

Autor: Jonny B. (jonnybgood)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, scheinbar funktioiert das mit dem Anhang nicht...


memory EQU 0xf1

#define  Cal  PORTA, 5
#define  Cal_LED PORTA, 4
#define  OUT_stdby PORTA, 0
#define  OUT_msr PORTA, 1
#define  Start  PORTB, 0
#define  Pwr_LED  PORTB, 1



;**********************************************************************
    ORG     0x000
      goto    init
    ORG   0x4
    goto   wake_up



init    movlw b'00000001'
    movwf PORTA
    clrf PORTB

    bsf STATUS, RP0
    bcf STATUS, RP1

    movlw b'10101100'
    movwf TRISA
    movlw b'11111101'
    movwf TRISB

    movlw b'00000101'
    movwf OPTION_REG

    movlw b'11010000'
    movwf INTCON

    clrf PIE1
    clrf PIE2
    clrf PCON
    clrf OSCTUNE
    clrf OSCCON

    movlw b'00001100'
    movwf ANSEL

    clrf ADCON1

    bcf STATUS, RP0
    bcf STATUS, RP1

    clrf T1CON

    clrf ADCON0

    clrf PIR1

;  Komperator init
    bsf STATUS, RP0
    bcf STATUS, RP1

    movlw b'00001010'
    movwf CMCON    ; !!!!!!!!!!!!!!!

    movlw b'10000100'
    movwf CVRCON

    bcf STATUS, RP0
    bcf STATUS, RP1
;  Komperator init ende

;  Komperator Interrupt init
    bcf PIR2, CMIF
    bsf INTCON, GIE
    bsf INTCON, PEIE

    bsf STATUS, RP0
    bcf STATUS, RP1

    bsf PIE2, CMIE

    bcf STATUS, RP0
    bcf STATUS, RP1
;  Komperator Interrupt init ende

    bsf Pwr_LED
    bcf Cal_LED
    bsf OUT_stdby
    bcf OUT_msr
    clrf memory

    goto main

Autor: Sebastian Hepp (sebihepp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du bist in die berüchtige Analog-Falle getappt. =)
Du musst PORTA auf Digital umstellen. Dazu löschst du
die betreffenden Bits im Register ANSEL.

Autor: Sebastian Hepp (sebihepp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, hab nicht genau genug gelesen. Schäm
Ich schau mal nach und melde mich, wenn ich eine Idee habe

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.