mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 10 Bit ADC Wer über SPI an zweiten Controller senden


Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte gern den 10Bit ADC eines ATMega32 über den SPI an einen 
zweiten ATMega schicken.
Nun stellt sich mir die Frage, ob es möglich ist den eingelesenen Wert 
so umzuwandeln, dass es ein byteweises versenden ermöglicht.

Folgendermaßen habe ich mir den Vorgang gedacht, als erstes lese ich den 
Wert ein, der zw. 0 und 1024 liegen kann. Diesen wandle ich in einen 
String um und würde diesen dann gern in ein "Byte -Array" schreiben, um 
diese nacheinander zu senden.

Die Programmierung würd ich gern in BASCOM-AVR realisieren.
Sieht jemand eine Möglichkeit dies so umzusetzten oder gibts einen 
besseren Einfall?

Vielen Dank für eure Hilfe

Stephan

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.. schick zuerst den Low-Teil (8 Bit) und dann danach die letzten
2Bit (verpackt in 8 Bit).

Du mußt also 2 Byte senden!

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal ins Datenblatt geguckt, wie und wo das Resultat abgelegt wird?

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Bensch

meist Du mich?

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Aufteilen in 2 Teile ist mir auch schon in den Sinn 
gekommen,
bloß ich weiß nicht, wie man das in BASCOM-AVR möglichts unkompliziert 
schreibt...

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>BASCOM-AVR

Du das weis ich auch nicht.

in VB würde ich folgendes anwenden

LowTeil = Wert and 0x00FF '&HFF
HiTeil  = Wert and 0x0300 '&H300

aber mit Sicherheit lassen sich die beiden Byts auch einzeln
auslesen!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>bloß ich weiß nicht, wie man das in BASCOM-AVR möglichts unkompliziert
>schreibt...

Mit HIGH(wert) und LOW(wert).
Das habe ich in 4 Minuten rausbekommen ohne auch nur
einen blassen Schimmer von BASCOM zu haben.

Autor: DerWarze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach die Register ADCH für die oberen 2bit und ADCL für die unteren 
8bit abfragen und versenden.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Einfach die Register ADCH für die oberen 2bit und ADCL für die unteren
>8bit abfragen und versenden.

das geht? in BASCOM? Registerpaare auch einzeln auslesen?

BASCOM wird mir immer sympathischer!

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So
> Mit HIGH(wert) und LOW(wert).
Das habe ich in 4 Minuten rausbekommen ohne auch nur
einen blassen Schimmer von BASCOM zu haben.

oder so
> Einfach die Register ADCH für die oberen 2bit und ADCL für die unteren
8bit abfragen und versenden.

hätt ich's auch probiert- ohne BASCOM jemals gesehen zu haben. EIN Blick 
ins Datenblatt... aber ich wiederhol mich nicht gerne.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Bensch

man bitte klärs auf.

>hätt ich's auch probiert- ohne BASCOM jemals gesehen zu haben. EIN Blick
>ins Datenblatt... aber ich wiederhol mich nicht gerne.

ich erwäge mir eine Vollversion von BASCOM zu zulegen.

Zu schnellen Testzwecken scheint mir das geeignetste zusein,
wenn man Basic halbwegs verstanden hat.

Keine Angst Finalprodukte sind, bei mir, in ASM geschrieben.

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BASCOM eine Sprache die es nur auch einem µC Typ gibt und sonst 
niemanden interessiert, na besser kann man seine Zeit nicht 
verschwenden.

Und dann auch noch stolz erzählen das man Final mit ASM programmiert.

Zeitverschwendung!!!!!
Lern C und du kannst alles auf jedem Controller programmieren, aber 
immer diese Insellösungen.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Keine Angst Finalprodukte sind, bei mir, in ASM geschrieben."

Hammer!
Was bin ich froh, dass ich sowas nicht mehr mache/(n) muss.
Hatte gerade das "simple" Problem, ein älteres Design mit 90S8535 (war 
damals der einzige mit A/D-Wandler) auf Mega8 zu portieren, trotz 
gleicher Familie war das nicht ganz ohne Fallstricke, hielt sich aber in 
Grenzen.
Klopf dir auf die Schulter, du bist ein Saurier!

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.