www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC_Interrupt


Autor: Stefan Helmert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe in der neuen Version 7.10 von MPLAB einen fehler im Simulator
festgestellt. - Interruptflags lassen sich nicht zurücksetzen - was
jedoch in Version 6.70 geht

Dann ist mir noch etwas passiert: Führe ich das Programm auf einem
PIC16F84A aus, wobei der Interrupt für Flankenwechsel an Ports B4-B7
aktiviert ist, wird die Interruptroutine nicht einmal je Wechsel
ausgeführt. Stattdessen wird sie bei Low ständig ausgeführt und bei
High nicht mehr. Es ist aber davon abhängig an welcher Stelle der Port
mit Masse verbunden ist. Könnte es sein, dass dieser Port sehr
empfindlich ist, was die Interruptauslösung angeht und er daher auf
jede Störstrahlung reagiert. Es scheint auch davon abhängig zu sien ob
die internen Pullups aktiviert sind.
Oder woran liegt das? Wie kann ich es beheben? Tritt das bei anderen
PICs auch auf? Oder ist nur dieser PIC kaputtgegangen?

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hast Du denn an den Pin's dran, bzw. was erzeugt den
Flankenwechsel?

Andreas

Autor: Manfred Glahe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan,

Störstrahlung kannst Du ausschließen. Dieser PIC ist sehr resistent
gegen derlei Probleme. Poste doch mal den Code, sieht für mich aus als
hättest Du das I Flag nicht zurückgesetzt. Schau dir noch mal Deine I
Routine an. Wie sieht die Beschaltung der Pins aus? Sind Spikes
ausgeschlossen usw.?

MfG Manfred Glahe

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vermute mal, Du hast offene Anschlüsse.

Das mag kein µC gerne, völlig egal, ob PIC oder nicht PIC.
Im günstigsten Fall hast Du nur eine erhöhte Stromaufnahme.


Ich setze daher bei sämtlichen IO-Pins, die ich nicht benutze, den
internen Pull-Up. Damit sind sie dann auf definiertem High-Potential.

Zu beachten ist aber, daß manche Sonderfunktionen den Pull-Up außer
Kraft setzen. Also am besten kontrollieren, das jeder freie Pin +VCC
hat.


Peter

Autor: Manfred Glahe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan,

was mir gerade noch eingefallen ist zu Deinem Problem, Read or Write
will end mismatch condition. Da Du die internen PU gesetzt hast könnte
es sich auch um den Anschluß zur Interruptquelle handeln. Hast Du dort
auch die Masse verbunden und nicht nur den Portpin beschaltet? Du
solltest doch mal die Beschaltung und das Codesegment posten.

MfG Manfred Glahe

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.