Ich habe an Port PB2, der ja auch gleichzeitig INT2 und AIN0 ist einen DS18S20 zu hängen. Leider funktioniert der da nicht dran. An einem anderen Port geht der aber. Ich habe da zwar irgendwas mit internen PullUps gelesen. Aber das peile ich irgendwie nicht. Hat jemand die Lösung für mich? Danke!
Servus Ronny Also etwas zu den internen Pull-Ups (Beispiel Anhand von PORTB): Wenn DDRB = 0x00, also Eingang ist und PORTB = 0x00 dann hast du einen Eingang ohne Pull-Ups. Änderst du jedoch dann PORTB auf 0xFF, dann sind die internen Pull-Ups (100k bis 500k) aktiviert. Für den DS1820 brauchst du dann natürlich trotzdem noch ein externen Pull-Up weil der interne "ein bisschen" zu gross wäre. Reicht das? Gruss Fab
Ja danke! Das hatte mich vorher nie so recht interessiert mit den Pullups. Ich sehe auch wenig Sinn in der Funktion, da der Widerstand ja doch etwas groß ist, wie Du gerade sagtest. Ich wollte mal Taster ohne zusätzlichen Pullup anschließen, was natürlich mächtig daneben ging - oder ich hatte die dummerweise garnicht aktiviert, Das würde das Problem erklären. Aber letztendlich hat der PB2 irgedwie eine Sonderstellung wegen dem Analog-Komparator. Dazu sollten die internen Pullups deaktiviert sein, so dass die Initialisierung so aussehen müsste: DDRB &= ~(1<<PB2); /* 1-Wire auf Eingang */ PORTB &= ~(1<<PB2); /* interne PullUps deaktivieren */ Klar ist das extern der 4.7k-Widerstand als PullUp dient. Aber dennoch funktioniert das Ganze nicht und an PA2 funktioniert es. Das ist es, was ich nicht verstehe. Letztendlich muss ich ja nur die 4 defines verändern und das geht einfach nicht. Irgendwo ist das was mit dem Port nicht so, wie es sein soll. #define DS1820_PORT_DDR DDRB #define DS1820_PORT_OUT PORTB #define DS1820_PORT_IN PINB #define DS1820_BIT_1WR PB2
Toll .. wieder mal dumme Programmierfehler, die man ewig sucht. Hmm .. alles sieht man auch nicht mit dem Debugger so richtig. :) Also das Thema hat sich jetzt erledigt. :)
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.