PCInt 0-7 bei Attiny2313

Gast #3232820
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.
Gast #3232866
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).
Gast #3233053
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".
#3233155
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.
#3233239
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.
Gast #3233258
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.
Gast #3233946
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren