-
        

Ergebnis 1 bis 5 von 5

Thema: Problem mit 12F675

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.02.2006
    Beiträge
    9

    Problem mit 12F675

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Folgendes Problem:

    Ich habe an meinen 12F675 an den Pins 2,3,4 Pull down Widerstände und Vorwiderstände zum Schutz der Eingänge; sowie an den Pins 5,6,7 LED´s mit Vorwiderständen.

    Mein Programm in MPLAB sieht so aus:

    list p=p12F675
    #include <P12F675.INC>
    __CONFIG _CP_OFF & _BODEN_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF

    i equ 0x20

    org 0x00
    goto main
    org 0x04

    init
    bcf STATUS,RP0
    clrf GPIO
    movlw 0x07
    movwf CMCON

    bsf STATUS,RP0
    clrf ANSEL
    movlw 0x38 ;5,4,3 als Eingang 2,1,0 als Ausgang
    movwf TRISIO

    bcf STATUS,RP0 ; Bank 1
    call 0x3FF
    movwf OSCCAL ; 4-MHz-Kalibrierung
    bcf STATUS,RP0 ; Bank 0
    return

    main
    call init

    movf GPIO,0
    movwf i

    btfsc i,3
    bsf GPIO,2

    btfsc i,4
    bsf GPIO,1

    btfsc i,5
    bsf GPIO,0

    goto main

    end


    Kurz die Funktion:
    Wenn Pin 2 high Signal hat soll die LED an Pin 7 leuchten,
    wenn Pin 3 high Signal hat soll die LED an Pin 6 leuchten,
    wenn Pin 4 high Signal hat soll die LED an Pin 5 leuchten.

    So, jetzt hab ich das Problem wenn ich über die Vorwiderstände der Eingänge 5V lege, leuchtet nur die LED an Pin 5 alle anderen sind aus.

    Woran könnte das liegen?? Bin für jeden Rat dankbar

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.10.2004
    Ort
    Nordschwarzwald
    Alter
    34
    Beiträge
    506
    so direkt fällt mir nix auf, aber kann sein dass ich heute abend blind bin

    kannst ja mal die zuordnungen ändern, so dass statt pin 5 der pin 6 oder 7 angehen müssten... wenn se dann angehen, kannste mal die reihenfolge der bit-tests drehen - obwohl das nichts bringen "darf"...

    ansonsten muss ich doch mal nen blick ins datenblatt werfen

    MfG
    Stefan

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    12.02.2006
    Beiträge
    9
    also, bit-tests drehen bringt nix
    aber wenigstens gehen die Ausgänge

    d.h. es muss irgendwie an den Eingängen liegen, hab grad nochmal meine Platine gecheckt, passt aber alles

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    17.05.2005
    Beiträge
    21
    Hey

    Also ich bin die ganze Sache mal überflogen, dabei hab ich folgende Probleme entdeckt:

    1. Du musst 0x80 ins OPTION_REG schreiben, sonst hast Du interne Pull-ups! Da werden dann die Eingänge nicht mitspielen!

    2. Bevor Du den Oszillator kalibrierst wechselst Du nicht wirklich nach Bank 1 (bcf statt bsf)

    3. Wenn Du den PIC einmal löscht und danach neu programmierst, wird beim Löschen auch der Code der Zeile 0x3FF gelöscht, sprich: Diese Kalibrierung funktioniert nur einmal. Du müsstest die letzte Zeile vorm ersten Programmieren auslesen und danach "mitprogrammieren".
    Am besten Du versuchst es mal ohne Kalibrierung.

    4. Ich vermute, dass die LED's auch wieder ausgeschaltet werden sollen, wenn Du den Eingang wegnimmst, und genau diese Automatik fehlt mir in deinem Programm.

    Ich hoffe diese Tips helfen Dir, ansonsten musst Du mal genauer ins Datenblatt schauen!

    Tux

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    12.02.2006
    Beiträge
    9
    danke,
    nachdem ich das OPTION_REG beschrieben hab geht es

Berechtigungen

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