declaration d'un registre en C - C - Programmation
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)
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).
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 ?
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). |
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).
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!
Marsh Posté le 22-03-2005 à 15:59:50
sissi2003 a écrit : La plateforme c'est le microP? |
Oui.
Citation : |
Donc problème résolu ?
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