UC direkt mit seiner Adresse ansprechen

Gast #2638832
Lesenswert?
• ▲
▼
Hallo,

Ich besitze einen 8051 uC
den würde ich gerne unter C programmieren.
bisher hab ich die Adresse des Registers immer mit der Variable:
TMOD = 0x01;
angesprochen

Nun hab ich gehört, dass man den Controller in C direkt unter seiner 
Adresse ansprechen kann.
Im Datenblatt steht folgendes:
TMOD (Timer/Counter-Mode-Register) Adresse:89H
Kann mir jemand sagen wie man das macht?

Danke im voraus
#2638852
Lesenswert?
• ▲
▼
GUIler schrieb:
> *((volatile unsigned char *)(0x89)) = 0x01;

und die Chancen stehen gut, dass sich in deiner ersten Version hinter 
TMOD nichts anderes versteckt als

#define TMOD   *((volatile unsigned char *)(0x89))

mit anderen Worten

  TMOD = 0x01;
und
  *((volatile unsigned char *)(0x89)) = 0x01;

laufen letzten Endes für den Compiler auf exakt das Gleiche hinaus. Nur 
das im ersten Fall die Schreibweise kürzer, prägnanter, besser lesbar, 
leichter mit dem Datenblatt abgleichbar, .... ist.

Es gibt also keinen Grund die zweite Version (die nur die in der 
Schreibweise aufgelöste 1. Version ist) zu verwenden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren