declaration d'un registre en C

declaration d'un registre en C - C - Programmation

Marsh Posté le 22-03-2005 à 09:57:50    

bonjour,
 
Je voudrais declarer les registres du timer en C (ex le registre TCON ayant pour adresse $88) et leur affecter un  nom mais je ne sais pas comment faire. Je pensais faire ca mais je ne sais pas si c'est juste?
 
unsigned char *TCON=$88
De plus comment on fait pour affecter une valeur a ce registre (par exemple $01) est ce qu'il faut faire comme ca?
TCON=$01
 
j'aimerai trouver une facon de declarer ce registre de sorte a ce que je n'ai plus qu'a ecrire TCON=$02 par exemple lorsque je veux changer le valeur contenue dans ce registre.
De plus comment declare t-on une variable 16bit. faut il utiliser des declaration du type unsigned short int ou short int pour les declarer.
 
merci d'avance

Reply

Marsh Posté le 22-03-2005 à 09:57:50   

Reply

Marsh Posté le 22-03-2005 à 10:13:40    

reponse simple : pas possible
 
pour des vars de 16bits ca depends de ton os, generalement sur un os 32bits c'est short (ou unsigned short)


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 22-03-2005 à 12:37:04    

pour un entier sur 16 bits, il y a int16_t (ou uint16_t).
Mais attention : il faut inclure <stdint.h>, c'est du C99, et en plus ces types sont optionnels pour l'implémentation (bizarrerie de la norme je trouve).

Reply

Marsh Posté le 22-03-2005 à 13:16:59    

sissi2003 a écrit :

Je voudrais declarer les registres du timer en C (ex le registre TCON ayant pour adresse $88)


Je pense que le compilateur dédié à ta plateforme dispose déjà des extensions nécessaires, genre #include <8051.h> ou <reg51.h> etc.
 
Quel est ta plateforme et quel est ton compilateur ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 22-03-2005 à 13:19:43    

++fab a écrit :

pour un entier sur 16 bits, il y a int16_t (ou uint16_t).
Mais attention : il faut inclure <stdint.h>, c'est du C99, et en plus ces types sont optionnels pour l'implémentation (bizarrerie de la norme je trouve).


C'est normal. Les types de tailles fixes n'existent que si la plateforme peut les implémenter. Par exemple, un uint8_t ne peut pas être implémenté sur un DSP TMS320C54, car sur cette machine, le plus petit espace adressable fait 16 bits (CHAR_BIT vaut 16).


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 22-03-2005 à 13:24:13    

:jap:

Reply

Marsh Posté le 22-03-2005 à 15:51:29    

La plateforme c'est le microP? si c'est ca c'est un ADuC812. J'ai trouve ce que tu me parlais. Il existe un #include <ADuC812.h>. par contre le complateur je ne sais pas trop. C'est un logiciel fournit par le fabricant de la carte de devellopement (Keil). Il parle d'un kit de develloppement appele PK51.
j'en sais pas plus!

Reply

Marsh Posté le 22-03-2005 à 15:59:50    

sissi2003 a écrit :

La plateforme c'est le microP?


Oui.

Citation :


si c'est ca c'est un ADuC812. J'ai trouve ce que tu me parlais. Il existe un #include <ADuC812.h>. par contre le complateur je ne sais pas trop. C'est un logiciel fournit par le fabricant de la carte de devellopement (Keil). Il parle d'un kit de develloppement appele PK51.
j'en sais pas plus!


Donc problème résolu ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed