ATTINY13 - Pinansteuerung

Gast #2310615
Lesenswert?

Moin.

Ich bin momentan bei der Hardwareauswahl für ein kleines Projekt was ich 
mir vorgenommen habe.

Und zwar möchte ich EINEN Pinchange Interrupt auswerten. Im Interrupt 
wollte ich gern abfragen ob der Pin einen 0->1 oder einen 1->0 wechsel 
gemacht hat, und das ganze dann im Hauptprogramm auswerten.

Je nachdem welcher Zustandswechsel stattgefunden hat soll ein anderer 
Pin (beispielsweise PB2 oder 3) auf High bzw. Low gesetzt werden.

Klingt ein bisschen wirr, aber ich denke man kann es verstehen.


Wie ich das ganze umsetze ist mir vom Prinzip her klar, ich habe nur 
kleinere Fragen:

Ich benutze 3 Pins für mein Programm. Via DDR konfigurier ich mir einen 
als eingang (für den PCINT) und die anderen beiden als Ausgang.

- Was mach ich (abgesehen von VCC und GND) mit den anderen Pins?

- Der ResetN-Pin oder auch PB5 oder auch ADC0 oder.. oder .. oder .. 
den möchte ich gern Dauerhaft als ResetN-Pin haben. Ist es möglich das 
festzulegen? Im Datenblatt steht nur "A low level on this pin for longer 
than the minimum pulse length will generate a reset, even if the clock 
is not running." - Aha, schön. Was is, wenn der Pin als Datenpin im 
PORTB gebraucht wird?

Vielen Dank schonmal für die Antworten.
#2310646
Lesenswert?

_elko_ schrieb:
> Was mach ich (abgesehen von VCC und GND) mit den anderen Pins?

Gar nichts. Sicherheitshalber kannst du die als Ausgang setzen. Dann 
hast du keine "flatternden" Eingänge. Da du die aber nicht benutzt, tut 
das nichts zur Sache.

_elko_ schrieb:
> Was is, wenn der Pin als Datenpin im PORTB gebraucht wird?
Dann kannst du den Controller nicht mehr im ISP-Mode programmieren.
Also lass' den, wie er ist.

mfg.
#2310669
Lesenswert?

_elko_ schrieb:
> Der ResetN-Pin oder auch PB5 oder auch ADC0 oder.. oder .. oder ..
> den möchte ich gern Dauerhaft als ResetN-Pin haben.

Hängt von den Fuses ab. Fabrikneu ist das aber der ¬RST Pin. Ist u.A. 
Vorraussetzung zum ISP brennen. Also nicht an der RSTDISBL Fuse 
herumspielen, sonst hilft nur Hi-Voltage-Programmierung.

_elko_ schrieb:
> Was mach ich (abgesehen von VCC und GND) mit den anderen Pins?

Als Ausgänge definieren oder als Eingänge, dann aber die Pullups 
einschalten, dass die Pins nicht "herumfloaten".

_elko_ schrieb:
> Und zwar möchte ich EINEN Pinchange Interrupt auswerten.

Hmpf, nimm doch PB1, der kann als INT0 fungieren, das erspart dir das 
leidige Maskensetzen bei PCINT. Lies doch Seite 47 vom Tiny13A 
Datenblatt(ist angehängt, was für ein Service).

mfg mf
PS:
1
// INT0 aka. PB1 als Pin Change Interrupt nutzen
2
MCUCR |= (0 << ISC01)|(1 << ISC00);
Angehängte Dateien:

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