hallo,
ich bin gerade dabei mich in einen ATTiny25 einzuarbeiten. meine AVR
kenntnisse lassen zu wünschen übrig und ich komme im moment einfach
nicht weiter.
ich möchte mit hilfe von int0 einen anderen pin toggeln lassen. doch
leider messe ich an int0 direkt immer +5v. wie kann ich denn den pin so
konfigurieren, dass er an ausgang low bringt?
>meine AVR kenntnisse lassen zu wünschen übrig und ich komme im moment >einfach
nicht weiter.
Da besteht ein innerer Zusammenhang.
Lies Dir das Datenblatt genau durch.
Mit "INT0" bezeichnet man sowohl einen Pin als auch eine Funktion. Die
Funktion ist es, einen Interrupt auszulösen, wenn sich daran ein
bestimmter Pegel oder ein Pegelwechsel ereignet (Ich habe gerade nich im
Kopf, welche der beiden Alternativen zutrifft).
Wenn Du also sagst, das "INT0 nicht funktioniert" so bedeutet das im
wesentlichen, dass der Interrupt nicht ausgelöst wird.
Nun schreibst Du aber, das Du an INT0 einen Pegel ausgeben willst. Das
ist aber nicht die Funktion von "INT0", bzw. des Pins.
Es ist durchaus möglich an dem Pin, der mit der INT0-Funktion verknüpft
ist einen Pegel auszugeben. Das hat nur nichts mit INT0 zu tun.
Also einfach den Portpin als Ausgang konfigurieren und das Bit setzen.
Um das Ganze klarer zu sehen, wäre es gut wenn Du eine Schaltung postest
(Bildformate beachten) in der auch Deine Signalquellen zu sehen sind.
vielen dank für die antwort.
ich glaube ich habe mich falsch ausgedrückt, buw. die hälfte vergessen.
ich habe einen dcg77 empfänger, welcher mir immer einen impuls zwischen
100 und 200µs bringt. nun ist es so, dass der dcf emfänger am ausgang
den portpin nicht auf low ziehen kann, da der controller +5v an diesem
pin augibt.
bemerkt habe ich das ganze erst, als ich einen buffer am ausgang des
dcf77 empängers angeschlossen habe um eine led zu betreiben. das signal
nach dem buffer habe ich an int0 angeschlossen. nun leuchtet die led
immer und es findet keinen wechsel auf low statt, da der controller die
+5v ausgibt.
gruß
peter
Abegesehen von der Gross-Kleinschreibung...
Das Ding heisst vermutlich DCF77-Empfänger und bringt Impulse von 100
oder 200 Millisekunden Länge... Aber gut.
Viele DCF-Empfänger haben einen Open-Kollektor-Ausgang. Um das zu
testen, trenne den Empfänger vom Controller und hänge die LED daran
(anderer Punkt auf Masse, Plus-Seite am Empfänger). Falls Du nichts
siehst, hänge einen 4,7kOhm Widerstand an den Empfänger und die andere
Seite an Plus (5V?).
Spätestens dann solltest Du, eine gute Empfangsposition vorausgesetzt,
die LED blinken sehen.
Dein Problem mit dem uC ist, das der Pin, an den Du den Empfänger
anschliesst als Eingang konfiguriert werden muss. Zusätzlich muss,
falls die LED bei dem obigen Experiment erst leuchtet, wenn der
Widerstand angelötet ist, noch den Pull-Up-Widerstand aktivieren. Wie
das geht, steht im Datenblatt. Im Einschaltzustand ist der Port
eigentlich als Eingang konfiguriert. Daher sollten da nicht 5V anliegen.
Zeige mal den kompletten Quellcode.
>übrigens funktioniert int0, wenn ich int0 mit einer drahtbrücke auf gnd>ziehe
Entschuldige, aber was ist das für ein Q...? Was meinst Du mit: "Es
funktioniert"? Woran merkst Du das?
der empfänger funktioniert, da die led ohne controller blinkt. die isr
wir ausgelöst, da der pin toggelt wenn ich int0 mit masse verbinde und
dann wieder trenne. es sind nur die 5v die zusätzlich die led treiben.
ja, da der aktive portpin nicht von dem empfänger auf low gezogen wird.
ich werde weiter mein glück versuchen, aber danke für die hilfe.
ps
ich meinte natürlich millisekunden.
wenn ich zuhause etwas neues teste, muss ich improvisieren und mir eben
mit ner drahtbrücke helfen. ich habe hier schließlich nicht die
optimalsten bedingungen.
viele grüße
>da der aktive portpin nicht von dem empfänger auf low gezogen wird
Hmm. Meine Glaskugel sagt, das Du das daran merkst, das der Interrupt
nicht ausgelöst wird. Leider sagt mir die Glaskugel nicht, wie Du das
feststellst.
Es kann sein, das der Empfängerausgang einen Pull-Down-Widerstand
braucht.
Leider hast Du mir nicht mitgeteilt ob der zusätzliche Widerstand nötig
war, damit die LED blinkt und wie Du die LED nun genau an den Empfänger
geschaltet hast, als sie blinkte. Mach mal einen kleinen Schaltplan
dazu.
Ich habe Dich auch aufgefordert den Schaltplan der Zusammenschaltung von
Empfänger und uC und den Quellcode zu posten. Bitte tu' das.
>wenn ich zuhause etwas neues teste, muss ich improvisieren und mir eben>mit ner drahtbrücke helfen. ich habe hier schließlich nicht die>optimalsten bedingungen.
Kein Problem.
>aktive portpin
Das ist auch ein irgendwie unpassender Ausdruck hier. Ein Pin der als
Eingang konfiguriert ist, wird höchstens dann als "aktiv" bezeichnet,
wenn er vom Inneren des uC aus gesehen, also irgendwie im Programm
merkbar, High ist.
Das aber würde eine externe Schaltung nicht daran hindern ihn auf Low zu
ziehen.
Was meinst Du hier mit "aktiv"?
>den Pull-Up deaktiviere passiert da nichts
Entschuldige, aber es ist wirklich sehr schwer Dir zu helfen, da Du
immer nur so halbe (wenn überhaupt) Informationen gibst. Was erwartest
Du da? Das da ein kleines Männchen aus dem Gehäuse kommt und eine Flagge
schwenkt?
"...passiert da nichts" ist nicht ausreichend als Beschreibung.
Du musst dem der Dir helfen soll, ganz klar legen was der Ablauf ist,
was Du erwartest und was passiert.
Ausserdem fehlen immer noch die Schaltpläne und der komplette Code.
Ich geb's auf. Kämpf Dich alleine durch.