Was bezweckst Du damit? WENN Dir so ohne weiteres klar ist, dass 150dez gleich 0b10010110 ist, dann macht das meiner Meinung nach einen (Teil-) Sinn. Teil deshalb weil es wohl nur sinnig ist, wenn der Port mit diesen Daten auch was anfangen kann. Wenn der Port komplett als Ausgang konfiguriert ist - DDRA = 0b11111111 - dann gehen bei "150" die Bits 7, 4, 2 und 1 an (auf high)... Werde .. den Datentyp bei der initalisierung auf uint8_t ändern .. PORTA = var; // var vom typ uint8_t
.. z.B: int a = 150; einem Ausgang zuweisen ..
Das Vorgehen dürfte also wohl nur dann sinnvoll sein, in denen der Port komplett als Ausgang konfiguriert ist, siehe oben. Denn der Sinn die Pullups wahlweise komplex zu setzten oder zu löschen ist für mich nicht wirklich einsichtig. Ich selbst operiere mit kompletten Ports nur in der binären Form - weil ich zu dämlich bin das Bitmuster von Dezimalzahlen mir ohne Hilfe vorstellen zu können. Einzelne Bits schalte ich in der üblichen Weise.
Ausnahme: Bei meiner PingPongPlatine, 120 LEDs auf einer Karte, schalte ich mitunter auch schon mal "im Prinzip" mit ner 38015 einige >bestimmte< LEDs ein. (Im Prinzip, weil das über ein Schieberegister geschieht).
Lesezeichen