Hallo, wie steuere ich den PORTD an diesem Atmega über C an wir haben es mit sisy derzeit gemacht, wir wissen dass der Wert PORTD = 0xC1 Bit 2,3 und setzt. kann uns jemand helfen wie man die anderen ansteuert,bzw. wie man die anderen Werte errechnet. Mfg Sebastian Neusch
Sebastian N. schrieb: > wir wissen dass der Wert PORTD = 0xC1 > Bit 2,3 und setzt. Das ist so falsch. 0xC1 ist bei C die Darstellung des Werte im Hexdezimalsystem. Das solltest Du zuerst mal lernen: http://de.wikipedia.org/wiki/Hexadezimalsystem Gruß Dietrich
hallo, entschuldige wenn ich mich falsch ausgedrückt habe, ich weiss wie das Hexadezimale binäre oktale usw funktionieren. Ich verstehe bloss nicht nach welchem system man die werte benutzt
Sebastian N. schrieb: > Bit 2,3 und setzt ... oder da ^ fehlt noch was im Text. Außerdem hängt es auch noch davon ab, welche Bits des Ports als Ausgang eingestellt sind und was unter "setzen" verstanden wird. Ist am Port z.B. eine LED gegen Vcc angeschlossen, leuchtet sie, wenn man den Portpin auf 0 "setzt". Gruß Dietrich
Sebastian N. schrieb: > PORTD = 0xC1 Wenn Du wirklich "hexadezimal" kannst, dann sollte das doch nicht so schwierig sein?
1 | +---------+---------+ |
2 | Hex: | C | 1 | |
3 | +---------+---------+ |
4 | Binär: | 1 1 0 0 | 0 0 0 1 | |
5 | +---------+---------+ |
6 | Bit 7 6 5 4 3 2 1 0 |
Und so wird das Port beschrieben. Also Bit 7, 6 und 0 sind "1", die anderen "0". Zu SiSy kann ich allerdings nichts sagen ... Gruß Dietrich
Nimm einfach meine sbit.h: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=835728#835728
:
Bearbeitet durch User
Auch wenn das sbit.h sicherlich eine gute Lösung ist, kommt der TO nicht umhin, den Zusammenhang zwischen dezimaler Schreibweise, binärer Schreibweise und hexadezimaler Schreibweise zu lernen
1 | dezimal Hex binär dezimal Hex binär |
2 | 0 0 0000 8 8 1000 |
3 | 1 1 0001 9 9 1001 |
4 | 2 2 0010 10 A 1010 |
5 | 3 3 0011 11 B 1011 |
6 | 4 4 0100 12 C 1100 |
7 | 5 5 0101 13 D 1101 |
8 | 6 6 0110 14 E 1110 |
9 | 7 7 0111 15 F 1111 |
speziell in der µC-Programmierung ist es unumgänglich diese Tabelle, speziell die Hex-binär Entsprechung im Kopf zu haben. Das sieht nur auf den ersten Blick kompliziert aus, tatsächlich ist diese Tabelle recht einfach zu merken - es gibt da ein paar augenscheinliche Zusammenhänge, die aus dem prinzipiellen Aufbau von Zahlen-Stellenwertsystemen resultieren. Hex ist deshalb die interessantere Version, weil eine 8-Bit Zahl, geschrieben als Hexadezimalzahl, ganz einfach die Aneinanderreihung der beiden 4-Bit Bitmuster der jeweiligen Hex-Ziffern ist.
1 | 0xC1 |
2 | |
3 | C 1100 |
4 | 1 0001 |
5 | |
6 | also ist 0xC1 11000001 |
Um einzelne Portpins gezielt auf 0 oder 1 zu setzen, gibt es allerdings bessere Möglichkeiten als die Zuweisung einr Hex-Zahl oder eines Binärmusters. Denn da hat man dann das Problem, dass man ja nicht nur das eine gewollte Bit verändert, sondern immer alle 8. D.h. das muss berücksichtigt werden, das dem so ist. Und da greifen dann die anderen Dinge. Allerdings entbindet das nicht davon, den zusammenhang Binärschreibweise zu Hex-Schreibweise zu kennen.
:
Bearbeitet durch User
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.