hallo, ich hab folgende aufgabe, die ich wie folgt gelöst habe:
1 | //Funktion für manuelle Ansteuerung
|
2 | /*durch Schiebeschalter eingestellte Bit-Wert soll auf R-2R-Netzwerk
|
3 | umleiten
|
4 | Bit-Wert soll auch an Leuchtdioden zur Überprüfung
|
5 | */
|
6 | void manuell(void){
|
7 |
|
8 | int bitWert;
|
9 |
|
10 | DDRD = 0b00000000;
|
11 | PORTD = 0b11111111;
|
12 |
|
13 | DDRA = 0b11111111;
|
14 | PORTA = 0b00000000;
|
15 |
|
16 | DDRB = 0b11111111;
|
17 | PORTB = 0b00000000;
|
18 |
|
19 | printf("Geben Sie den Bit Wert in dezimal ein: ");
|
20 | scanf("%d", &bitWert);
|
21 |
|
22 | PIND = bitWert;
|
hallo, also meine aufgabe war, Port D als Eingang sowie PortA(LEDs) und
PortB(R-2R-Netzwerk) als Ausgänge zu konfigurieren. Ich bin ein
kompletter anfänger, was Microcontroller angeht, und habs versucht, das
Ganze in C zu programmieren.
mit dem DDR-Register habe ich die Eingabe- und Ausgabepins festgelegt.
Da PortD als Eingang gedacht ist, habe ich alle Pins im DDR-Register auf
0 gestellt und die Pullabstände im PortD aktiviert.
Analog zu PortA und PortB habe ich die Pins auf 1 gelegt, also als
Ausgabepins festgelegt, und danach die Pull-up-Widerstände im PortA und
PortB deaktiviert.
Danach sollte ich mithilfe von PortD ein Bit-Wert einlesen und ihn dann
an PortA und PortB weiterleiten.
da ich nicht weiterwusste habe ich angegeben, dass man den Bit-Wert als
int-wert schreiben kann, aber die Register dürfen ja nur mit
Hexidezimalzahlen oder binärzahlen belegt. keine ahnung wie ich das
machen soll. kann mir da jmd. weiterhelfen?