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.
_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.
_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); |
Vielen Dank für die schnellen Antworten, ihr habt mir sehr geholfen. MfG
Pinchange IRQ um ein Flag zusetzen, welches in der Main ausgewertet wird?! - Wieso dann nicht gleich alles ohne IRQ und Flag in der Main machen und direkt auf den Pin beziehen?!
Weil ich mir in dem Pinchange event noch was anderes setze. Und ich will den Pin nicht pollen.
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.