Hallo liebe µC-Gemeinde!
ich habe eine kleine frage zu interrupts (jaja... mal wieder...). aber
erstmal ein paar informationen vorweg:
ich programmiere z.z. noch auf dem board "es52-flash" mit dem AT89S8252
drauf. ist zwar ein alter typ, aber mein problem wird "chipübergreifend"
sein.
programmiert werden soll ein sechsstelliger zähler (sechs
7-segment-anzeigen), der in 10000stel schritten bis 99,9999 sekunden
zählen kann. der code hierfür ist auch nicht so das problem.
aber der zähler soll durch einen interrupt gestartet und gestoppt
werden. ich verweden aber den einen port als datenbus (P0), den anderen
als adressbus (P3) (für meine anwendung recht sinnvoll, oder?).
so kommt es beim durchschalten der anzeigen zwangsläufig dazu, daß der
pin p3.2, der ja auch für den externen interrupt zuständig ist, dauernd
zwischen low und high wechselt. in verschiedenen beschreibungen steht
ja, daß der interrupt ausgelöst wird, wenn der pin von außen auf ein
anderes level gezogen wird. bei dem board stand bei, daß der pin per
schalter auf masse/low gezogen werden soll.
aber kann ich den interrupt auf die weise noch auslösen, wenn der pin
z.b. gerade schon auf low ist???
ich hoffe ihr versteht mein problem und haltet mich nicht für den
totalen "n00b"...
würde mich sehr über aufschlussreiche antworten freuen!
mfg,
Joachim
Joachim wrote:
> aber der zähler soll durch einen interrupt gestartet und gestoppt> werden.
Wenn das Einganssignal vollkommen stör- und prellfrei ist, kann man das
machen.
> ich verweden aber den einen port als datenbus (P0), den anderen> als adressbus (P3) (für meine anwendung recht sinnvoll, oder?).
Eher nicht.
Wozu soll der externe Bus gut sein ?
Und wenn, dann nimmt man üblicher Weise P0+P2, damit man per MOVX drauf
zugreifen kann.
Peter
hallo Peter,
danke für die antwort!
also prellfrei ist das signal schon, da es durch einen transistor
ausgelöst werden soll und nicht durch einen mechanischen schalter. wie
störfrei es ist kann ich aber nicht sagen...
aber warum das mit P3 nicht so gut ist versteh ich nicht ganz. ich habe
das so gemacht, weil bei dem board nur P1 und P3 so komfotabel über
10polige pfostenstecke zugänglich sind. klar hab ich noch P0 und P2
frei, aber da komm ich nicht so leicht dran... soll ich das umändern?
und wenn ja wie und warum?
im anhang mal n bildchen, wie die schaltung theoretisch aussähe: der
treibertransistor für die leds ist ein pnp, also low-gesteuert. der
"interrupt-transistor" soll durch eine lichtschranke gesteuert werden,
darum prellfrei (hoff ich).
wenn nun an P3.2 ein low kommt um die led an zu sprechen, wird der
interrupt dann trotzdem ausgelöst, wenn der pin auf masse gelegt wird?
daß die led dann ausgeht ist klar, aber für die anwendung egal...
danke im voraus,
mfg,
Joachim
Joachim wrote:
> hmmm... ist die frage nicht klar genug gestellt oder woran liegt es, daß> keiner was dazu sagen kann?
Manchmal gibt es ein Leben neben dem I-Net.
Wie es scheint brauchst Du gar keinen Bus, sondern willst nur ein
Display ansteuern.
Dann erzähl mal mehr (Multiplex, Ansteuer-IC, Latches).
Von 2 bis 14 Pins ist alles möglich.
Peter
@Peter:
oh ja, das leben neben dem inet... was wäre das netz ohne das leben
daneben ;) ... philosophier
ich dachte die ansteuerung wäre in meiner obersten beschreibung
rausgekommen. im allgemeinen wird meine ansteuerung wohl als multiplexen
bezeichnet. auf jeden fall habe ich unter diesem begriff meine art der
ansteuerung im netz gefunden.
und ich will auch eigentlich kein display ansteuern. da hab ich zwar
auch drüber nachgedacht, aber ich fand dann die fröhlich blinkenden
7-segment-anzeigen schöner.
aber wie gesagt... ich will euch ja eigentlich nicht mit details über
die hardware drumrum oder womöglich das programm ansich nerven.
meine kernfrage war ja, ob ein interrupt an P3.2 immer ausgelöst wird,
wenn der pin auf masse gezogen wird, egal ob der pin grad auf low oder
high ist (siehe beigefügtes bild oben). und wenn ja (/nein) warum
(nicht)?
gruß,
Joachim
hmmm, ok.
bleibt mir dann wirklich nur die möglichkeit auf die anderen ports aus
zu weichen und darauf zu achten, daß in zukunft meine interrupt-pins
frei bleiben?