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
@voriger post: ups, die led bleibt ja an... ist aber trotzdem egal...
hmmm... ist die frage nicht klar genug gestellt oder woran liegt es, daß keiner was dazu sagen kann?
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
Hallo Joachim, du kannst nicht gleichzeitig einen Pin als Ausgang (2 Segment Anzeige) und als Eingang (Interrupt) benutzen. Gruß Lars
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?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.