Forum: Mikrocontroller und Digitale Elektronik Timer - TMOD Register, Problem


von Alex.Haydl (Gast)


Lesenswert?

Hi, ich habe folgendes Problem:
ich programmiere den atmel at89s8252, also die µC der Serie 8051.
mein controller hat, wie fast jeder microcontroller auch ein TMOD
register das auf der Addresse 89h im SFR liegt.
jetzt kann ich zw. 4 verschiedenen Timermodi auswählen mit M0 und M1
welche auf dem 4. und 5 platz (oder pin?) liegen von insgesammt acht.
wenn Bit von M0 und M1 gesetzt werden habe ich die timer funktion die
ich haben will.
Aber wie setze ich diese zwei addressen auf 1?
irgendwie kann man das nämlich nicht bitaddressieren.
welche Adresse muss ich jetzt ansprechen um die bits entsprechend zu
setzen?
ich habe hier auch noch einen link.

http://www.goblack.de/desy/mc8051chip/datenblatt/index.html

vielen dank schonmal!

Gruss

Alex Haydl

von Divison (Gast)


Lesenswert?

Vieleicht

sbi (TMOD,4);
sbi (TMOD,5);

Aber ich hab keine ahnung ob das geht. Hab mit dem Kontroller noch nie
was gemacht.

Mit was Programmierst du denn den?

C oder Assembler oder Basic? Sollte man immer dazuschreiben.

Sonst kommt wieder jemand mit nem Glaskugelmode. :-)

von Alex.Haydl (Gast)


Lesenswert?

ja, ich programmiere mit assembler. wäre mir schon sehr wichtig zu
wissen wie ich das addressiere. brauche eine sichere aussage darüber,
trotzdem danke :-)

von edi-edi (Gast)


Lesenswert?

wenn nicht BIT-adressierbar,dann eben BYTE-adressierbar!

von Peter D. (peda)


Lesenswert?

Schau Dir doch mal den Befehlssatz an:

Mit MOV kannst Du einen Wert direkt laden.
Mit ORL kannst Du einzelne Bits auf 1 setzen.
Mit ANL kannst Du einzelne Bits auf 0 setzen.
Mit XRL kannst Du einzelne Bits umkippen.


Peter

von Alex.Haydl (Gast)


Lesenswert?

wie soll ich das aber machen?
es bringt mir ja nix wenn ich das ganze byte addressiere, da dann M0
und M1 = 1 sind und ich somit modi 3 habe statt der eigentlich gewolten
modi 2.
ich möchte lediglich M1 auf 1 und M0 auf 0 setzen.
und wie soll ich das überhaupt mit ORL oder XRL machen?
wäre nett wenn ihr mir da weiterhelfen könntet!
Gruss

alex

von Karl-Heinz (Gast)


Lesenswert?

Mmmhh ... wie willst du überhaupt irgendwas mit Digitalelektronik machen
wenn du nichtmal simpelste Grundlagen, wie Binärsystem,
Hexadezimalsystem und Boolesche Operatoren beherrschst?

von Alex.Haydl (Gast)


Lesenswert?

tja, ich fange eben erst an. ich dachte dafür ist ein Board da.
Ausserdem beherrsche ich sehr wohl Boolsche Opertaron, Dualsystem, sowi
hex zahlen.
ich möchte nur wissen wie ich es einstellen kann. Deshalb frage ich
hier. ich müsste es nämlich etwas genauer wissen wie hier beschrieben.

von Alex.Haydl (Gast)


Lesenswert?

axo, jetzt verstehe ich .
ich soll ein zahl an TMOD byte addressieren.
wenn ich jetzt das 4. und 5 bit umkippen will bsp. dann schicke ich
bspw. oder verknüpft 00110000 an TMOD um die bits zu kippen?
habe ich das richtig verstanden?

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.