Bascom Beispiel Atmega 32 SPI

Gast #2775206
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
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.
Gast
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
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.