Forum: Mikrocontroller und Digitale Elektronik PCInt 0-7 bei Attiny2313


von frager (Gast)


Lesenswert?

Hallo,

wenn ich das Richtig verstanden habe, dann sind die PCint0-7 Pins ein 
PCint0 softwaremässig, und springen immer zur selben Unterfunktion.

Meine frage jetzt, kann man in der Unterfunktion abrufen, welcher PCint 
der auslöser WAR, oder muss man den Wert vorher irgendwie gespeichert 
haben, und dann in der Unterfunktion NOCHMALS den Wert des Pins 
abfragen?

Ich benutze Bascom.

von Timmo H. (masterfx)


Lesenswert?

Du musst den Status der Pins speichern von denen der PCMSK aktiv ist. In 
der PCINT ISR musst du dann schauen wo sich was geändert hat.

von c-hater (Gast)


Lesenswert?

Timmo H. schrieb:

> Du musst den Status der Pins speichern von denen der PCMSK aktiv ist. In
> der PCINT ISR musst du dann schauen wo sich was geändert hat.

Und darauf vorbereitet sein, daß es auch mal vorkommt, daß sich nichts 
geändert hat, wenn nämlich der Puls am Eingang zu kurz war.

Ich persönlich halte die PCINT-Geschichte für eine ziemliche 
Fehlkonstruktion, für viele Sachen nicht wirklich zu gebrauchen. Es 
hätte noch ein Register dazugehört, welches alle Änderungen zwischen 
zwei Abfragen speichert und dessen Auslesen es auch gleichzeitig 
zurücksetzt. Ohne dieses Register sind die Anwendungsmöglichkeiten doch 
arg eingeschränkt.

Entweder man beschränkt sich auf einen aktiven Pin pro PCINT oder man 
sorgt mit externer Hardware für definierte Signaleigenschaften oder man 
hat eine Anwendung, bei der es keine Rolle spielt, an welchem Pin genau 
was gewackelt hat. Letzteres ist eher selten, mir ist nur eine derartige 
Anwendung bekannt (Aufwachen durch eine beliebige Taste einer 
Keymatrix).

von frager (Gast)


Lesenswert?

c-hater schrieb:
> Ohne dieses Register sind die Anwendungsmöglichkeiten doch
> arg eingeschränkt.

allerdings...

c-hater schrieb:
> oder man
> sorgt mit externer Hardware für definierte Signaleigenschaften

wie würde sowas aussehen?

von c-hater (Gast)


Lesenswert?

frager schrieb:

> c-hater schrieb:
>> oder man
>> sorgt mit externer Hardware für definierte Signaleigenschaften
>
> wie würde sowas aussehen?

Das hängt natürlich von der konkreten Anwendung ab. Möglich wären z.B. 
Monoflops zur Impulsverlängerung oder D-Flipflops zur Impulsspeicherung. 
Letzteres würde im Prinzip näherungsweise das fehlende PCINT-Register 
ersetzen, bräuchte aber einen zusätzlichen Pin für den Reset des 
"Registers".

von Peter D. (peda)


Lesenswert?

c-hater schrieb:
> Ich persönlich halte die PCINT-Geschichte für eine ziemliche
> Fehlkonstruktion

Stimmt.
Die einzig praktikable Anwendung ist nur das Aufwachen aus dem 
Power-Down. Danach macht man alles wie üblich, z.B. Tasten entprellen im 
Timerinterrupt.

Etwas besser ist es, wennn man je PCINTx nur einen Pin enabled. Dann 
weiß man wenigstens den Pin, aber immer noch nicht die Flanke.

von frager (Gast)


Lesenswert?

c-hater schrieb:
> D-Flipflop

klingt gut. Kann man den FlipFlop so ansehen, dass dieser wenn an einem 
Pin high anliegt, es praktisch gespeichert wird, auch wenn die 
Stromversorgun nicht mehr anliegt? Sozusagen ein Nichtflüchtiger 
Speicher?

von Peter D. (peda)


Lesenswert?

frager schrieb:
> klingt gut.

Nö.
Erstmal mußt Du festlegen, was Du überhaupt machen willst. Erst danach 
kannst Du eine Lösung suchen. Es gibt keine Lösung, die für alles paßt.

von frager (Gast)


Lesenswert?

c-hater schrieb:
> D-Flipflops zur Impulsspeicherung

Peter Dannegger schrieb:
> Nö.
> Erstmal mußt Du festlegen, was Du überhaupt machen willst.

Einen Impuls dauerhaft speichern!

von Peter D. (peda)


Lesenswert?

frager schrieb:
> Einen Impuls dauerhaft speichern!

Gehts nicht noch unkonkreter?

von frager (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Gehts nicht noch unkonkreter?

Beitrag "Not or + AND gatter"


Brauch ich bei einem D-Flipflop diese Clock leitung und die Data 
leitung?
Ich benötige für eine Impulsspeicherung nur, SET, Reset und Output oder?
Brauche ich Reset, wenn ich dieses Signal nur einmal benötige? Wird der 
zustand nun auch ohne Strom gespeichert?

von Wusel D. (stefanfrings_de)


Lesenswert?

Eigentlich brauchst Du nicht ein D-Flipflop, sondern ein RS Flipflop:
http://www.elektronik-kompendium.de/sites/dig/0209302.htm

Selbstverständlich verlieren sie ihren Zustand ohne Strom. Wenn Du etwas 
brauchst, was ganz ohne Strom den Zustand speichert, brauchst Du etwas, 
das nicht elektrisch funktioniert. Zum Beispiel ein bistabiles Relais.

Das wiederum funktioniert nur bei ausreichend langen Impulsen. Dann 
kannst Du auch wieder mit dem Interrupt arbeiten und den Zustand ggf im 
E²prom speichern.

Du schuldest uns immer noch eine Beschreibung des konkreten 
Anwendungsfalls.

von frager (Gast)


Lesenswert?

Wusel Dusel schrieb:
> Du schuldest uns immer noch eine Beschreibung des konkreten
> Anwendungsfalls.

Ein parallel Eprom das fast Komplett mit "00" beschrieben ist und nur an 
einer bestimmten stelle mit "FF" gibt an seinem Data-Output eine 1 
zurück. Dies allerdings nur sehr kurz, zu kurz für ein Mikrocontroller 
der damit arbeiten soll.

Wenn jetzt zugriff auf diese Zelle war, soll am Mikrocontroller entweder 
immer oder solange damit der Mikrocontroller dies mitbekommt. Ist 
eigentlich egal, da ich nicht wissen möchte, wie oft zugegriffen wurde. 
Dieser zugriff ist nur einmal wichtig. Erst wenn das Gerät neu gestartet 
wird, soll alles von vorne beginnen.
Zudem sollte das alles platzsparend sein, also eine 1 IC oder 1 
bauteillösung ist vorzuziehen.

von c-hater (Gast)


Lesenswert?

frager schrieb:

> Ein parallel Eprom das fast Komplett mit "00" beschrieben ist und nur an
> einer bestimmten stelle mit "FF" gibt an seinem Data-Output eine 1
> zurück.

Wenn es ein paralleles EPROM ist, hat es ja mehrere Outputs. Wenn es 
tatsächlich nur um die Unterscheidung zwischen 00 und FF ginge, würden
die Fähigkeiten der PCINT-Hardware dafür ja völlig ausreichen.

Du hast also entweder dein Problem nicht wirklich verstanden oder du 
hast es falsch dargestellt.

Tatsächlich glaube ich, daß du derselbe Typ bist, der schon mehrere 
Threads zu dem Thema "Beobachtung eines EPROM" losgetreten hat und der 
in diesen Threads insbesondere gezeigt hat, daß er absolut keine Ahnung 
hat, daran auch nicht wirklich was andern möchte, aber trotzdem ein 
Ergebnis haben will.

Sowas werde ich keinesfalls unterstützen. Kurz: Mach's dir selbst!

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
Noch kein Account? Hier anmelden.