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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.