Forum: Offtopic Kurze Code-Interpretation?!


von Nicole (Gast)


Lesenswert?

Hallo Leute,
bräuchte bitte kurz einmal ein paar Kommentare zu folgendem
Programmteil:  void T1Start(WORD wert) {
           TH1=wert >> 8;
           TL1=wert & 0xff;
           TMOD=(( TMOD & 0x1f) | 0x10);
                 ET1=1; TR1=1; }

Ich weiß nich, inwiefern ihr damit was anfangen könnt, aber vielleicht
kann ja jemand in eins, zwei Sätzen sagen, was da passiert?!
LG, Nicole

von Khani (Gast)


Lesenswert?

Hallo Nicole,

dann zerpflücken wir mal den Code :

void T1STart(WORD wert) {
hier geht's los : Keine Rückgabewerte der Funktion und ein (16 bit)
Parameter.

TH1=wert >> 8;
Der 16bit- Wert wird um 8 bit nach rechts geschoben, wobei immer mit
Nullen aufgefüllt wird. Ergebnis der Operation ist, dass die oberen
8bit hinterher an den bit-Stellen 7-0 stehen (untere 8bit). Diese 8bit
werden dann in TH1 eingefüllt (also auch Namensgebung von TH1 sinnvoll
- T(imer)H(High bits)1)

TL1 = wert & 0xff;
Der 16bit-Werte wird mit der binär-Zahl 11111111 bitweise
UND-verknüpft. Daraus folgt, es bleiben nur die niedrigen 8bit (7-0)
übrige, diese werden dann in TL1 eingefüllt. (T(imer)L(ow bits)1)

TMOD=((TMOD&0x1F)|0x10);
TMOD wird geladen und bitweise UND mit 11111 verknüpft. Daher bleiben
nur die niedrigen 5bit (4-0) übrig. Die restlichen bits werden zu 0
gesetzt. Anschließend wird das Ergebnis noch bitweise ODER mit 10000
verknüpft - bit4 wird eingschaltet, die anderen bleiben unverändert.
Der neue Wert von TMOD wird zurückgeschrieben.

ET1=1; TR1=1;
Simple Zusweiungen. Brauche ich wohl nicht zu erklären.

Was Du jetzt noch machen musst :
 - was für ein µController wird verwendet ?
 - schau ins Datenblatt und finde raus, was genau TH1 ,TL1, TMOD, ET1,
TR1 bedeuten und was sie im µController bewirken.

Falls Du diese Fragen beantworten kannst und noch immer Unklarheiten
bestehen - wieder posten oder mailen.

MfG, Khani

von ---- (Gast)


Lesenswert?

Liegt es nur am verwendeten Synonym (aka Vornamen), daß nicht gleich mit
der vielzitierten Glaskugel, die in Reparatur ist, argumentiert wird
oder gleich mit: 'Hier findet keine Hausaufgabenbetreuung statt!'
abgewiesen wird?

Kleider machen Leute.

verwundert,
----, (QuadDash).

von Khani (Gast)


Lesenswert?

QuadDash :
Wenn Du meinst Du musst mich hier maßregeln, dann sag ich Dir eins :
Vergiss es. Ich habe hier schon andere Fragen (außerhalb von HA)
gesehen, über die "Fachleute" tagelang diskutiert haben und die waren
fachlich unterirdisch ! Der Code von oben ist nicht sofort verständlich,
wenn man nicht viel Ahnung von C/C++ hat.

Wenn Du zu faul bist zu antworten, dann lass es ganz - OK ?!

Übrigens : Ich bin nicht so geil, dass ich auf jede Frage, welche von
einem weiblichen Namen gestellt wird beantworte - also lass bitte diese
blödsinnigen Posts und gleichzeitig die in Ruhe die nur hilfsbereit
sind.

Danke, Khani

von ---- (Gast)


Lesenswert?

@Khani: Ich hab nicht dich persönlich angegriffen - eigentlich hab ich
mich nur gewundert, daß nicht gleich (wie sonst üblich) laut geschrien
wird. Ich habe nichts über deine Antwort gesagt.

Es liegt mir wirklich fern hier jemanden zu beleidigen, ich
'beobachte' nur die Fragentypen und die Reaktionen darauf. Diesmal
hab ich mich dazu geäußert.

---, (QuadDash).

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Es sieht nicht gerade so aus als hätte sich "Nicole" (grübel, war da
nicht schon vor einiger Zeit mal was?) viel Gedanken über eine
selbstständige Problemlösung gemacht, QuadDash's Einwand ist also
durchaus berechtigt.

von Fritz Ganter (Gast)


Lesenswert?

Gut, wenn ich mal zu faul zum Nachdenken bin werde ich auch unter Susi
posten :-)

von Mario (Gast)


Lesenswert?

> Liegt es nur am verwendeten Synonym (aka Vornamen), daß nicht
> gleich mit der vielzitierten Glaskugel, die in Reparatur ist,
> argumentiert wird oder gleich mit: 'Hier findet keine
> Hausaufgabenbetreuung statt!' abgewiesen wird?

Witzig, ich hatte den gleichen Gedanken. Jeder andere hätte eine
einzige Zeile und nicht ein ganzer Bildschirm voll Text als Antwort
bekommen.

Mario

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.