- Labornetzteil AliExpress         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 30 von 30

Thema: PIC Fallen

  1. #21
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hast Du im Quellcode auch angegeben, daß es sich jetzt um 12F629 handelt ?
    Z.B. bei Assembler die Zeile: include "p12f629.inc" ; Registerdefinitionen einbinden
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  2. #22
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo TB1!

    Der einziger, aber wichtiger unterschied zwischen den PIC12FXXX und PIC16FXXX ist bei Portsnamen. Bei den 16F heissen Sie A, B, C, usw. und bei den 12F gibt's nur ein Port der heisst GPIO. Die zügehörigen TRIS Register heissen entsprechend bei 16F TRISA, TRISB, TRISC, usw. und bei 12F TRISIO. Im Programm muss es geändert werden. Ausserdem GP3 ist nur Input. Um alle I/O Pins nutzen zu können, habe ich folgende Konfiguration verwendet:

    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT

    Dazu kommt noch folgene Initialiesierung:

    movlw 7
    movwf CMCON ; comparator off, RA0-2 digital I/O

    Wenn Du das mit den Ports und das was der kalledom erwähnt hat bereits gemacht hast, poste am besten Deine .asm Datei, dann können wir Dir besser helfen.

    MfG

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    23.11.2004
    Beiträge
    17
    Hi Leute,
    An den geänderten Namen TRISIO und GPIO kanns nicht liegen. Hab ich berücksichtigt. Ich programmiere in C (jaja ich weis), und die korrekte Headerdatei ist im Projekt verknüpft. Auch der korrekte PIC ist in MPLAB eingestellt.
    Wenn ich das Eingangssignal als Startbedingung aus dem Programm rausnehme, dann läuft das Schalten der Ausgänge wie gewünscht. Er erkennt nur das Startsignal, also Highpegel an einem Eingangspin, nicht.

    Trotzdem erstmal besten DAnk für Eure Hinweise, auch wenn sie mir leider nicht nützen.
    Ich werde mal versuchen, die Pindefinition in Assembler ins Programm zu übernehmen. Vielleicht hilft das ja. Bis dann.
    MfG TB1

  4. #24
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Schau, bitte, noch mal meinen letzten Beitrag, da ich ihn editiert habe, wenn Du Deinen letzten gepostet hast.

    Ich kenne C nicht, aber sehr wichtig ist in den Register CMCON bei der Initialisierung den Wert 7 einzuschreiben, da sonst funktionieren die GPIOs 0,1 und 2 nicht als digitale I/Os.

    MfG

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    23.11.2004
    Beiträge
    17
    HiUser
    Ich werde mal die Initialisierungen von PICture probieren. TRISIO und GPIO habe ich berücksichtigt. Da das Problem nur bei einem Eingang auftritt kanns eigentlich nur am Init liegen. Wenn ich die Startbedingung (hi´pegel) rausnehme, dann läuft das Programm nämlich.

  6. #26
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Und noch mal das gleiche mit dem Editieren.

    MfG

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    23.11.2004
    Beiträge
    17
    Hi PICture,
    Das Initiaöisieren mit CMCON=7 funktioniert ohne Fehlermeldung. Ob das Programm richtig läuft, werde ich erst morgen (Do) wissen, weil ich immer auf Arbeit mit PIC zu tun hab, und der Brenner deshalb dort ist. Heute hab ich frei
    Ich schreib spätestens morgen Mittag obs funktioniert.

  8. #28
    Neuer Benutzer Öfters hier
    Registriert seit
    23.11.2004
    Beiträge
    17
    HI Leute;

    CMCON=7 war der richtige Tipp. Jetzt läufts. Besten Dank.
    Gruss an alle
    TB1

  9. #29
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    Ich bin heute in eine Falle reingefallen, die ich gar nicht vermuttet habe.

    Bei einem Frequenzmessunsprogramm (das bei mir schon früher am PIC18F252 fehlerfrei gelaufen ist) habe ich zum togglen des Prescalers von Timer0 (beim PIC16F870) das bit T0SE in OPTION_REG benutzt,
    nur die Reihenfolge von diesen zwei Zeilen:

    bsf OPTION_REG,T0SE
    bcf OPTION_REG,TOSE

    verwechselt und das Programm war schon fehlerhaft.

    Ich weiss immernoch nicht genau, warum ?

    Ich vermute die innere Hardware vom PIC, da gibt's aber leider kein detaliertes Schaltplan, um das analisieren zu können.

    MfG

  10. #30
    Erfahrener Benutzer Roboter-Spezialist Avatar von witkatz
    Registriert seit
    24.05.2006
    Ort
    NRW
    Alter
    54
    Beiträge
    542
    Blog-Einträge
    17
    Ich hoffe, dass es nicht total verpönt ist, ein über 6 Jahre altes Thread zu reanimieren?
    Ich bin beim Portieren eines Projektchens von 16F84A auf 16F630 in die RA3 Falle getappt, die hier schon beim 12F675 mit GP3 in einem Nebensatz erwähnt wurde. Wenn der RA3/MCLR Pin des 16F630 zum I/O Pin konfiguriert wird (MCLRE_OFF), dann kann er nur als Eingang genutzt werden. Es müsste also I-Pin statt I/O-Pin heißen .
    Das steht zwar irgendwo im Datenblatt, aber da recherchiert man erfahrungsgemäß erst, nachdem man aufwändig Testboard-, LED- und Kabel- und MCU-Defekte ausgeschlossen hat.

    Gruß witkatz

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

Solar Speicher und Akkus Tests