www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LIN_Master-Slave Kommunikation


Autor: MrDeeds1974 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe mal eine Frage bezüglich der Master-Slave Kommunikation.

Wie würde der Slave das Signal einlesen? Sagen wir mal ich schicke ihm 4 
Datenbytes, wovon im ersten Byte 2 Bits für eine Pin Auswahl stehen, die 
restlichen Bits für PWM Wert usw. Ist ja auch im Prinzip egal.
Muss ich mir die ganzen Bytes auseinanderbröseln und mit if Abfragen 
auswerten oder wie macht man das?

Thx

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich will mit einem Atmega8 Controller eine Spannung messen diese Wandeln 
und per RS232 an Hyperterminal schicken. RS232 Kommunikation klappt.
Problem 10 bit A/D Wert 8 bit über RS232, wie löse ich das? Nacheinander 
einlesen?
Weiteres Problem will z.B jede ms einen Messwert, mach ich das übern A/D 
Wandler Takt oder per Interrupt?

Autor: dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pwm = c & 0x3F;

if(c&0x40)


if(c&0x80)


c:

7   6   5   4   3   2   1   0
b1  b0  ---------pwm val ----


@Bobby 1987

was hat das mit der frage von MrDeeds1974 zu tun!?

d.

Autor: MrDeeds1974 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, schonmal vielen Dank dafür,

jetzt müsste ich ja im Prinzip soviele if Abfragen machen, bis ich 
treffe?

Autor: Johannes Slotta (johanness)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das macht bei zwei Bit (4 Pins) drei If-Abfragen (also eine weniger 
als Pins). Wenn man für alle Pins die selben Laufzeiten haben will 
ordnet man die Abfragen in einem schönen binären Baum:

if(c&0x40) {
  if(c&0x80) {
    // Pin 4
  } else {
    // Pin 2
  }
} else {
  if(c&0x80) {
    // Pin 3
  } else {
    // Pin 1
  }
}

(hab die Dinger jetzt einfach benannt als 00->Pin1, 01->Pin2, ...)

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok soweit so klar. Da ich mit Bus Kommunikation gar nicht auskenne, 
jetzt wahrscheinlich eine dumme Frage: die restlichen 5 Bit sollen mir 
ja einen Konfigurierbaren Wert übergeben, ich habe aber keinen Plan wie 
ich diesen Wert meinem Controller beibríngen soll.

Autor: Johannes Slotta (johanness)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bobby: Was hat deine Frage mit der von MrDeeds1974 zu tun? Und von 
welchen fünf Bits redest du?

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie man LIN-Messages verarbeitet interessiert mich auch, und ich 
verstehe nicht so ganz wie man die übrigen 5 bit, welche die PWM liefern 
sollen auswertet? Hatte ausversehen auch bei Deeds meine A/D Frage 
gepostet, daher gucke ich öfters vorbei :-)

Autor: Johannes Slotta (johanness)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe dennis` Posting: pwm=c&0x3F;
Damit weist man die unteren sechs Bits des Wertes c der Variablen pwm 
zu, hat dann also einen 6-Bit-Wert (0-63). Ich vermute den will er dann 
an dem durch die ersten zwei Bits bestimmten Pin ausgeben.

Autor: MrDeeds1974 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo genau das will ich machen. Danke für die Hilfe. Werde das jetzt mal 
in der Praxis testen.

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mit dem Befehl wird automatisch einem der Pins 0-3 der PWM wert 
0.63 übergeben? Ich verstehe die genaue Syntax des Befehls nicht!

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
0-63

Autor: Johannes Slotta (johanness)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke mal er programmiert seinen Slave so, dass er genau das 
beschriebene Format versteht und dann die 0-63 in 0-100% Duty Cycle 
umsetzt und auf Pin0-3 (was auch immer das in seinem Fall ist) ausgibt. 
Insofern geht das automatisch, sobald mans eben programmiert hat...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.