Hi Ich bin dabei meine ersten Erfahrungen mit einem Microcontroler zu sammeln. Also hab ich mir ein einfaches Board zusammengelötet und das funktioniert auch soweit. Ich wollte über einige Ports LEDs ansteuern. Das klappte auch sehr gut, nur an PortD2 bleibt die LED leider schwarz. Ich weis nicht warum. Mit dem ACR Studio (+winavr) hab ich ein einfaches simples c-Programm geschrieben welches Port A-D 0-7 alle als Ausgänge definiert und selbige dann einschaltet. An einigen Eingängen hab ich LEDs angeschloßen (nicht direkt, der Microcontroler schaltet Tranistoren frei), dich eigentlich alle leuchten sollten. Aber wie gesagt an PORT D 2 bleibt leider dunkel und ich weis nicht warum. die anderen LEDS an PORT D 3-7 leuchten alle. Ich würd nur ungern etwas umlöten müssen, sehr ihr vielleicht einen Fehler den ich mache? Oder kann ich den INT0 (PORTD2) gar nicht als Ausgang nutzen? Ich hoffe ihr könnt mir helfen. Vielen Dank im Vorraus Icarus Anbei den Quellcode CODE: #define LEDSA PORTA #define LEDSB PORTB #define LEDSC PORTC #define LEDSD PORTD #include <avr/io.h> #include <stdint.h> int main() { DDRA = 0b11111111; DDRB = 0b11111111; DDRC = 0b11111111; DDRD = 0b11111111; LEDSA = 0b00000000; LEDSB = 0b00000000; LEDSC = 0b00000000; LEDSD = 0b00000000; while(1){ LEDSA = 0b11111111; LEDSB = 0b11111111; LEDSC = 0b11111111; LEDSD = 0b11111111; }}
Icarus N. wrote:
> mache? Oder kann ich den INT0 (PORTD2) gar nicht als Ausgang nutzen?
DOch, kannst du. Kein Problem.
Überprüf noch mal deine Hardware auf Fehler:
Kalte Lötstellen, Leiterbahnunterbrechungen, defekte Led
und solche Dinge.
Hi Danke für den Tipp Ich bei mir hat jeder Port einen eigenen Stecker, so das gerade mal den Stecker von Port D auf Port A gesteckt habe. Alle LEDs leuchten da auf. Allerdings will ich Port A anders nutzen. Ein weiteres Durchpiepsen der Leitungen ergab, dass die Lötstellen bis zu LED okay sind (wie ersteres Experiment schon zeigte. Daraufhin bin ich mit meinem Messgerät an die Spitze des Pins PORTD2 in der Buchse (die Buchse für meinen oben benannten Stecker) gegangen und hab die Verbindung zu dem Beinchen des Microcontorlers getestet. Auch diese hat genau wie alle anderen Verbindungen einbandfreien Kontakt und zeigen keinen messbaren Fehler. An den Fuse bits hab ich bisher nur auf externen Quarz umgestellt und JTAG deaktivert, da ich ja über ISP Programmiere. Durch ein wenig lesen hab ich inzwischen herraus bekommen, das PORTD2 irgendwie für "Interrputs" alternativ genutzt werden kann. jedoch konnte ich nicht finden wie ich diese alternative ausschalte, sofern es denn an ist
Icarus N. wrote: > Durch ein wenig lesen hab ich inzwischen herraus bekommen, das PORTD2 > irgendwie für "Interrputs" alternativ genutzt werden kann. jedoch konnte > ich nicht finden wie ich diese alternative ausschalte, sofern es denn an > ist Es ist nicht defaultmässig an. Im Grunde gibt es keinen Grund warum sich D2 anders als der Rest verhalten sollte. Wenn du keine LED anhängst, was sagt dein Voltmeter dann am Pin D2?
Danke, darauf hätt ich kommen können. Dank dem hab ich den Fehler gefunden. So simpel und ich hab ihn übersehn. Scheinbar hab ich irgendwo PortD2 mit Masse direkt verbunden. Jedenfalls ist der beim Messen immer auf 0V. Darauf hin hab ich nochmal durchgepipst, und scheinbar hab ich mich vertan. So bin dann mal auf der Suche nach meinem Masseschluß. Tut mir leid das ich mit so einem banalen Problem hier aufgekreuzt bin
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.