Hallo, kann mir jemand sagen, wie man unter Bascom die internen Pullup-Rs zuschalten kann. Habe im Forum einen Beitrag gefunden, da stand: zuerst Pins als INPUT definieren und dann die entsprechenden Portbits auf 1 setzen. Also etwa so für Portbit 2 von Port D: Config Pind.2 = Input Pind.2 = 1 (interne pullups aktivieren?!) A = Pind.2 Das funktioniert jedoch bei meinem Mega32 definitiv nicht und kommt mir auch irgendwie merkwürdig vor. Wenn ich so vorgehe und danach die entsprechenden Portbits auslese, kommen abwechselnd Nullen und Einsen, das sieht für mich schwer nach undefinierten Zuständen aus. Jemand ne Idee oder Tipp (ausser auf C umsteigen, das kommt nämlich wirklich bald)?
Die Eins muss auf portd geshrieben werden, nicht auf pind. Bei manchen Prozessoren muss noch das PUD Bit im MCUCR gesetzt werden.
Herr_Mann wrote: > die entsprechenden Portbits auf 1 setzen. ... > Pind.2 = 1 Warum Schreibst du richtig Portbits und setzt aber stattdessen doch Pin??? Tom wrote: > Bei manchen Prozessoren muss noch das PUD Bit im MCUCR gesetzt werden. Was heißt PUD? "Pull Up Disable"!!!!!! Ob man das setzen sollte, um den Pullup zu aktivieren?!?
> Jemand ne Idee oder Tipp Wirf die CONFIG-Anweisung für im AVR implementierte Hardware *) weg und richte Dich nach dem Datenblatt. Jeder Port hat drei Register, PORTx, DDRx und PINx. Lies im Datenblatt die Erklärung zu den Registern, dann kannst Du die gewünschten Zustände mit dem Zuweisungsoperator (=) zuweisen. Versuche, den Zusammenhang von Bits und Bytes zu verstehen. Jeder Portpin entspricht einem Bit im Byte des Gesamtportes. > (ausser auf C umsteigen, das kommt nämlich > wirklich bald)? Naja, das glaubst Du ja selbst nicht, warum investierst Du noch Zeit in BASCOM, wenn Dein Ziel C ist? Du solltest Dich vielmehr mit ASM beschäftigen, das ist auch für C eine große Hilfe, denn ASM fördert das Verständnis für die Architektur des Controllers, dies wiederum ist eine verdammt gute Voraussetzung beim Planen halbwegs effektiv arbeitender Programme. KH *) Config-Anweisungen für Softwaremodule wie LCD-Treiber, Software-UART/SPI/I²C sind sinnvoll und auch notwendig. Bei der im AVR integrierten Hardware (Ports/Timer/UART/SPI/TWI/ADC/...) ist es besser, auf Config zu verzichten und die Werte gemäß Registerbeschreibung im Datenblatt von Hand in die Register zu schreiben (bzw. auszulesen). Das ermöglicht mehr Möglichkeiten bei der Nutzung der Features und fördert das Verständnis der Architektur.
Hallo, mit portd.255 klappts schon mal. Denke mal, wenn ich mit portd.x nur die benötigten bits hochsetze, wirds auch gehen. @kachel-heinz lach, hab mir gestern noch einen stapel bücher zu c und asm für avrs besorgt, die basic-geschichte mach ich aber noch in bascom fertig. immer schön eins nach dem anderen ;O) auf jeden fall danke für die erschöpfenden antworten und inspirationen!
> Hallo, mit portd.255 klappts schon mal.
Aha... Dabei gibt es nur portd.0 bis portd.7...
Aber egal, Du wirst das schon machen.
KH
tja, manchmal ist schneller = langsamer und gemeint war natürlich portd = 255
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.