6. Programmation en langage C
6.1. Types de données
Déclaration des types de mémoire
Dans la déclaration de variable peut indiquer quel type de mémoire est stocké.
Le tableau suivant indique le type de mémoire qui peuvent être spécifiées.
- mémoire de code de programme (64 Ko). Grâce à l'accès à l'aide du MOVC @ A + DPTR.
- Adresse des données directement à la mémoire de données interne. Pour un accès rapide à des variables (128 octets).
- idata indirects adressage de la mémoire de données interne. Avec l'accès à toute la mémoire interne (256 octets).
- B Les données des données d'adresse mémoire interne peu à peu. Permet d'accéder à la zone de bits par octet et l'adresse de bits (16 octets).
- xdata données de la mémoire externe (64 Ko). Consulté par le MOVX DPTR instruction @.
- pdata pagination (256 octets) mémoire externe de données. Accès par l'instruction MOVX @ Rn.
Normalement, lorsque vous travaillez en C, il n'est pas nécessaire de préciser le type de mémoire dans lequel stocker le contenu des variables, il est supposé que c'est la RAM de travail. Mais dans ce type de microcontrôleurs en ayant différentes zones de mémoire avec un comportement différent, vous devez spécifier si la variable est de donner un ou l'autre mémoire que nécessaire. Par défaut, si rien n'est indiqué la variable est attribuée une mémoire de données.
Exemples:
de données char Var1;
char code texte [] = "Entrez la température:";
unsigned long xdata MonTableau [100];
float idata x, y, z;
unsigned int Dimension pdata;
unsigned char xdata vecteur [10] [4] [4];
char bLes données d'indicateurs;
Types de données
Un type de données définit la gamme des valeurs qui peuvent avoir une variable tout au long de l'exécution du programme et le nombre d'octets de mémoire allouée pour stocker des informations.
Type de données | Bits | Bytes | Gamme |
bit * | 1 | | 0 à 1 |
signed char | 8 | 1 | -128 À +127 |
unsigned char | 8 | 1 | 0 à 255 |
enum | 8 / 16 | 1 ou 2 | -128 À +127 ou de -32768 à 32767 |
signé à court | 16 | 2 | -32768 À +32767 |
unsigned short | 16 | 2 | 0 à 65535 |
signé int | 16 | 2 | -32768 À +32767 |
unsigned int | 16 | 2 | 0 à 65535 |
signé à long | 32 | 4 | -2147483648 À 2147483647 |
unsigned long | 32 | 4 | 0 à 4294967295 |
flotteur | 32 | 4 | ± 1.175494e-38 à ± 38 3.402823E |
SBIT * | 1 | | 0 à 1 |
SFR * | 8 | 1 | 0 à 255 |
sfr16 * | 16 | 2 | 0 à 65535 |