Forum: Mikrocontroller und Digitale Elektronik Bascom Beispiel Atmega 32 SPI


von Jannik (Gast)


Lesenswert?

Hallo ihr Mikroexperten

Ich möchte mich erstmal vorstellen. Ich bin Jannik, 13 Jahre alt und 
interessiere mich für Mikrocontroller.

Nun zu meiner Frage. Ich hab schon das halbe Internet durchforstet und 
nichts wirklich gefunden. Wie ich zwei Atmegas per SPI verbinde, weis 
ich schon. Nur fehlt mir ein Beispiel Sourcecode in Bascom, wie ich dem 
Master bzw. Slave sage, dass wenn ich z.B. an Portd 1 am Master einen 
Taster anschließe und diese drücke, die LED, die an z.B. Portb 3 am 
Slave  angeschlossen ist leuchtet.

Grüße Jannik

von Jannik (Gast)


Lesenswert?

Kennt denn keiner eine Antwort?

von Karl H. (kbuchegg)


Lesenswert?

Also wenn ich in Google den Suchbegriff "BASCOM SPI" eingebe, finde ich 
jede Menge Zeugs.

Du wirst dich schon ein wenig damit beschäftigen müssen. Exakt die 
Programme, die dir vorschweben, wirst du nicht finden. Das ist aber auch 
nicht Sinn der Sache. Programmieren lernt man nur, in dem man selber was 
programmiert und nicht anderer Leute Code einfach nur per Copy&Paste 1:1 
übernimmt.

> Nur fehlt mir ein Beispiel Sourcecode in Bascom, wie ich dem
> Master bzw. Slave sage, dass wenn ich z.B. an Portd 1 am Master
> einen Taster anschließe und diese drücke, die LED, die an z.B.
> Portb 3 am Slave  angeschlossen ist leuchtet.

Wo liegt das Problem.
Wenn eine Taste an Portd1 gedrückt wird, dann sendet der Master-µC an 
den Slave-µC einen bestimmten Wert (den du dir ausdenkst). Wenn der 
Slave-µC einen Wert empfängt und dieser Wert der vereinbarte ist, dann 
schaltet er die LED ein.

Du hast also 4 Teilprobleme
* Erkennen eines Tastendrucks
* Senden eines Wertes per SPI
* Empfangen eines Wertes von der SPI
* Einschalten einer LED

und die Lösungen dieser Teilprobleme musst du entsprechend der 
Aufgabenstellung mit ein paar if-s kombinieren.

von Jannik (Gast)


Lesenswert?

Ok, also muss ich quasi das erste If setzen, wenn der Taster gedrückt 
wird. In diesem If wird der Wert festgelegt. Dann muss ich im Slave ein 
If setzten, wenn der bestimmte Wert erhalten wird, die LED 
einzuschalten.

Ist das vom Ansatz her richtig?

Grüße Jannik

von Karl H. (kbuchegg)


Lesenswert?

Jannik schrieb:
> Ok, also muss ich quasi das erste If setzen, wenn der Taster gedrückt
> wird. In diesem If wird der Wert festgelegt. Dann muss ich im Slave ein
> If setzten, wenn der bestimmte Wert erhalten wird, die LED
> einzuschalten.
>
> Ist das vom Ansatz her richtig?

Wenn ich dir so zuhöre, denke ich, du solltest erst mal SPI SPI sein 
lassen und auf einem EINZIGEN µC die AUfgabenstellung hinkriegen: Ich 
drücke eine Taste und eine LED beginnt zu leuchten.

Deiner Ausdrucksweise nach versuchst du dich gerade an einer Aufgabe, 
die eigentlich erst in der Lernstufe 25 angemessen behandelt werden 
kann, du selbst gehst aber gerade mal in die Lernstufe 1.

Erst mal muss ein Baby krabbeln lernen, ehe man daran denken kann, es 
für den New York Marathon anzumelden.

von Dietrich L. (dietrichl)


Lesenswert?

Jannik schrieb:
> If setzen, wenn der Taster gedrückt wird.

Komische Ausdrucksweise...

If wird nicht gesetzt, mit If fragst Du ab, ob die Taste gedrückt ist. 
Und wenn "ja" tust Du das, was Du bei "ja" tun willst, und sonst, was Du 
bei "nein" tun willst - ggf. nichts.

Gruß Dietrich

von The_ride (Gast)


Lesenswert?

Hi!

Hier findest du grundlagen in Bascom
http://www.dieelektronikerseite.de/
und hier ist ein Forum für Bascom
http://bascom-forum.de/forum.php

cya The_Ride
Peter

von Jannik (Gast)


Lesenswert?

Naja, das mit dem If war vielleicht schlecht ausgedrückt. Einen Taster 
abfragen und eine LED dazu zum Leuchten zu bringen kann ich schon. Auch 
die LED per PWM dimmen und einen ADC abfragen. Ich kann auch 
Schieberegister ansteueren.

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.