Forum: Mikrocontroller und Digitale Elektronik BusOut Frage


von Paul D. (Firma: 1987) (buu2188)


Lesenswert?

Hallo Ihr Lieben :)

Erstmal zu meinem Lineup:
Board: Nucleo F401RE
IDE: Eclipse STM32CubeIDE 1.4.0

Ich habe eine Frage an Euch. Bin im Studium nun dabei einen 
Mikrocontroller zu programmieren. Nun versuche ich mich einzulesen und 
vorzubereiten, nur wird mir im Internet unter "mbed" Code angezeigt, den 
ich in meinem System nicht so verwenden kann, wie zum Beispiel "wait()".
Wir haben unteranderem 8 Taster und 8 Led's aufgebaut und die Aufgabe 
lautet,
dass ich mit BusOut alle Led's alle 0.5s zum leuchten bringen soll.

Code:
1
 
2
DigitalIn button7(BB_BTN_7, PullDown);
3
DigitalIn button6(BB_BTN_6, PullDown);
4
DigitalIn button5(BB_BTN_5, PullDown);
5
DigitalIn button4(BB_BTN_4, PullDown);
6
DigitalIn button3(BB_BTN_3, PullDown);
7
DigitalIn button2(BB_BTN_2, PullDown);
8
DigitalIn button1(BB_BTN_1, PullDown);
9
DigitalIn button0(BB_BTN_0, PullDown);
10
11
DigitalOut led7(BB_LED_7);
12
DigitalOut led6(BB_LED_6);
13
DigitalOut led5(BB_LED_5);
14
DigitalOut led4(BB_LED_4);
15
DigitalOut led3(BB_LED_3);
16
DigitalOut led2(BB_LED_2);
17
DigitalOut led1(BB_LED_1);
18
DigitalOut led0(BB_LED_0);
19
20
BusOut myleds(BB_LED_4, BB_LED_3, BB_LED_2, BB_LED_1, BB_LED_0);
1
int main() {
2
3
    while (true) {
4
5
6
     .............
7
8
    }
9
}

Nun zu meiner Frage, habe alle Klassen soweit durchgelesen. Aber mal zu 
einer allgemeinen Frage. Was ist diesbezüglich überhaupt ein "BUS"...?
Verstehe ich das so richtig laut der Definition, dass man via BusOut 
alle Led's aufeinmal ansteuern kann?
Wie würde das überhaupt aussehen?

Und wisst Ihr vielleicht eine gute deutsche "Mbed" Tutorial Seite et.c?

Liebe Grüße :)

von Stefan F. (Gast)


Lesenswert?

Ich denke, dass der Name dieser Klasse nicht wirklich etwas mit dem 
Fachbegriff "Bus" aus der Computertechnik zu tun hat. Offenbar ist das 
eine Hilfsklasse, die den Zugriff auf einzelne I/O Pins vereinfachen 
soll.

https://os.mbed.com/handbook/BusOut

Was ein Bus ist, kannst du dort nachlesen: 
https://de.wikipedia.org/wiki/Bus_(Datenverarbeitung)

Die interne Kommunikation zwischen RAM, CPU und Peripherie findet über 
Busse statt. Außen nutzt du in dieser Anwendung aber keinen Bus.

von Johannes S. (Gast)


Lesenswert?

Die Doku zur aktuellen Version 6.4 wäre hier: 
https://os.mbed.com/docs/mbed-os/v6.4/apis/busout.html

Im Beispiel ist ja schon alles drin, auch das wait. Bis auf das jetzt 
chrono verwendet wird und beim warten statt ‚250‘ ‚250ms‘ oder ‚0.25s‘ 
benutzt werden soll.

BusOut ist einfach die Zusammenfassung mehrer Bits, die vorherigen 
DigitalOut für die LEDs sind überflüssig.

von Paul D. (Firma: 1987) (buu2188)


Lesenswert?

Habe nun die Dokumentation des Profs. durchgelesen.
Wir sollen den Konstruktor der BusOut Klasse aufrufen mit PinNamen.

Und bitweise operieren. Ich habe nur keine Ahnung wie das alles :(

von Johannes S. (Gast)


Lesenswert?

Na der Konstruktor steht doch schon da und C Bitoperationen stehen im C 
Lehrbuch. Und einfacher als mit myleds =x; geht es doch kaum.

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
Noch kein Account? Hier anmelden.