mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom: int0 und int1 zu gleich. entprellen?


Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo leute, ich will 2 frequenzen mit int0 und int1 meines mega16
messen.

zur zeit bastle ich noch an der software, die bei mir nicht so richtig
laufen will. ob es an meiner programmierung liegt oder an der hardware
versuche ich gerade rauszufinden.

ich lasse einen counter im hintergrund laufen und bei einem
flankenwechselbei intX wird halt zur entsprechenden intX_isr gesprungen
und ein flag gesetzt
im hauptprogramm versuche ich dann den timerwert zu sicher und durch
vergleich mit dem vorigen wert auszwerten.

das alles wird dann auf einem display angezeigt.


problem ist, daß wenn ein signal an int0 anliegt auch int1 rumspringt
(wert auf dem display) und andersrum.
auch haben die timewerte (die ja nur belegt werden wenn ein interrupt
ausgelöst wurde) schon vom programmstart an einen wert - auch wenn gar
noch gar kein signal anliegt.

ich lasse den mc per timer einen port toggln um damit eine frequenz zum
messen zu erzeugen als test.

dabei kann ich sehen, daß beim verbinden von intX-port mit dem
toggelnden port munter der andere intX-port teilweise "mitmacht"

hab hier schon im forum was von 3,3k pulldown an die beiden intX-Ports

gelesen, aber bei mir hats keinen erfolg gebracht.

deswegen meine frage, kann ich die intXports irgendwie optimieren was
stabiliät und signalqualität angeht?

anstreben tue ich freuquenzen im kiloherz-bereich, also noch nicht all
zu viel

Besten Dank
Manuel

Autor: Axel Rühl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, ich nochmal...

wie mache ich das?
ich nehme einen Timer,stelle den auf ca. das 10fache meiner zu
erwartenedenen Frequenz und frage portD ab. Immer lang hin.
wenn jetzt am INT0 ein signal anliegt (achso, die Interrupts INT0 und
INT1 sind garnicht aktiviert) habe ich im pinb-register eine4 zu
stehen,ist am INT1-Pin was an, habe ich im PINB-Register eine 8 zu
stehen, sind gerade beide an eine 12 sind beide gerade nich an, eine 0.
jetzt brauchste aber die Flanke und nicht den Pegel, stimmts?
dann merkste dir den PINB-Zustand in einem Register und machst ein XOR
mit dem neuen Zustand. Danach nochmal das Ergebnis deiner
XOR-Geschichte mit den akuellen Zustand, und du hast die steigenden
Flanken der beiden Eingänge vom INT0 und vom INT1 als Ergebniss.
Wie gesagt, Codeschreiben muss jemand anners, ich mache mit FastAVR und
will hier niemenden langweilen.
Ich habe diese Problematik aufgreifen müssen, da ich eine Lüfteranzeige
programmieren musste. Da waren 3 Lüfter mit Ihren Tachosignalen, die
alle drei auf einem LCD dargestellt werden sollten, (also die
Drehzahlen).

Mach jut
AxelR.
Potsdam
Gruß an die Runde

Autor: Axel Rühl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na huch, du machst ja auch mit Basic rum, stand ja inder
Überschrift...ich such das mal raus. Ist ja fast gleich
AxelR.

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, wäre nett wenn du da waa finden könntest!
besten dank

Gruß Manuel

Autor: Axel Rühl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
war gestern schon spät, die Datei ist auf meinem anderen rechner.
Übrigens in Assembler geschrieben, ist schon eine Weile her, da hatte
ich noch kein Basic. Kann ich aber erst die Tage 'rüberspielen, weil
mein ach so toller neuer Computer kein Diskettenlaufwerk hat. Habe ich
garnicht gemerkt! Aller annerer Sch.. ist drinn aber kein
DiskettenLaufwerk!
Also bis denne
AxelR.

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.