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


von Stephan (Gast)


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

von Carsten (Gast)


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!

von Bensch (Gast)


Lesenswert?

Mal ins Datenblatt geguckt, wie und wo das Resultat abgelegt wird?

von Carsten (Gast)


Lesenswert?

@ Bensch

meist Du mich?

von Stephan (Gast)


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...

von Carsten (Gast)


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!

von holger (Gast)


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.

von DerWarze (Gast)


Lesenswert?

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

von Carsten (Gast)


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!

von Bensch (Gast)


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.

von Carsten (Gast)


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.

von Ralph (Gast)


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.

von crazy horse (Gast)


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!

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.