begin process at 2012 05 29 11:56:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Système

 > 

Autre

 > 

formattage en C algorithme


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

formattage en C algorithme

mercredi 7 mars 2007 à 13:58:26 | formattage en C algorithme

develdelphi

Bonjour,

Je souhaiterai savoir à quoi sert exactement ce code:
il me emblerai qu'on retourne un tableau de int ?

#define unsigned char Byte

unsigned int  fn_lect_8_dataword (void)
{
unsigned int tmp;

  ((Byte*)&tmp)[1] = ide_data;
  ((Byte*)&tmp)[0] = ide_data;
  return tmp;
}

Merci de votre aide.




mercredi 7 mars 2007 à 14:47:47 | Re : formattage en C algorithme

develdelphi

Rebonjour,

En fait voila ce code vient d'une librairie et il s'agit d'une librairie qui interroge les registres d'une CompactFlash (même fonctionnement qu'un disque dur IDE/ATA).
Je dispose d'un pcb contenant un microcontrolleur qui va aller lire dans la CF.

Definition selon la librairie:

/* IDE/ATA Definition */
/*  With LATCH
    A0        A0  P0_0
    A1        A1  P0_1
    A2        A2  P0_2
    CS0#      P5_2  P5_2   /Modifier
    CS1#      P5_3  P5_3   /Modifier

    For compact flash
    A0         A0  P0_0
    A1         A1  P0_1
    A2         A2  P0_2
    CS0#      P5_2  P5_2
    CS1#      P5_3  P5_3
                              CS1#  CS0#    A2    A1    A0
    Data                          1     0         0       0      0       0x10
    Error/features             1     0         0       0      1       0x11
    Sector count               1     0         0       1     0       0x12
    Sector No                   1     0        0       1      1       0x13
    Cyl. Low                    1     0        1        0      0       0x14
    Cyl. High                    1     0        1        0      1       0x15
    Select Card/Head       1     0        1        1     0       0x16
    Status/Command         1     0       1         1     1       0x17
    Alt stat/ dev ctrl           0     1        1        1     0       0x0E
    Drive address              0     1        1        1     1       0x0F
*/

mais cette librairie ne  dispose pas d'exemple et il y a selon moi 3 fonctions
 qui peuvent faire cette action ( aller lire à une adresse donnée de la CF et afficher 1 secteur en entier cad 512 bytes).

Je me demandais si ce morceau de code ne devait pas interagir ?

Merci


mercredi 7 mars 2007 à 15:30:06 | Re : formattage en C algorithme

goast_tu

((Byte*)&tmp)[1]  permet d'acceder au deuxieme octet de l'entier tmp
1)  &tmp   c'est le pointeur sur tmp
2)  (Byte*)&tmp      converti le pointeur sur un int en un pointeur sur un Byte
3)  ((Byte*)&tmp)[1]   accede au 2eme octet du tmp

donc la fonction retourne juste un int qu'on peut voir comme un tableau de Byte


Trafic web gratuit!!!
mercredi 7 mars 2007 à 18:58:50 | Re : formattage en C algorithme

develdelphi


Merci, là c'est bien clair.
Et donc comme un entier est sur 4 octets, l'instruction peut
aller jusqu'à maximum :

 ((Byte*)&tmp)[3]

Mais la valeur de retour de la fonction est bien un int alors que on
retourne un tableau de Byte?
Peut être que nous retournons un vrai int  mais formaté en tableau de Byte ?

Merci
vendredi 9 mars 2007 à 12:56:58 | Re : formattage en C algorithme

goast_tu

oui c'est ca c'est un int . C'est juste qu'on stock dans l'es pas qui lui est reservé un tableau de bytes.
C'est asses courrant en C.
Par exemple beaucoup de librairies prennent en parametres des booleans codées dans un int avec un OR ("|")
par exemple en openGL
glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT);


Trafic web gratuit!!!
dimanche 11 mars 2007 à 16:09:26 | Re : formattage en C algorithme

develdelphi



Salut Kill Bill,

Merci pour ces precieux renseignements que tu me fournis.

J'ai ecrit plus haut de communication avec carte CF, j'ai enfin pu communiquer avec ma CF mais
j'ai un petit soucis de données reçues. J'ai fait un sujet à cette adresse: http://www.cppfrance.com/infomsg_COMMUNICATION-ENTRE-MICROCONTROLLEUR-CARTE-COMPACTFLASH-LECTURE-ERRONEE_901766.aspx

si tu peux m'aider?

Merci



Cette discussion est classée dans : int, algorithme, tmp, unsigned, formattage


Répondre à ce message

Sujets en rapport avec ce message

Hexadécimal HELP ! [ par Xentor ] Bonjour,Mon problème est le suivant : je vient d'effectuer un AND sur une variable, et celle ci, bien que conservant son type unsigned int se met en h conversion constante en hexa ->unsigned long ou int ??? [ par andrealphus ] 4ndr&@lphu$rebonjour à tous et toutes,mon nouveau probleme est ridicule mais gênant...comment peut on convertir un nombre hexadécimal (du style l'adre Fch. Header :: CONIO.H [ par TontOnDuWeb ] Pour ce que ca interesse (avec vc++ les fonctions suivantes e sont pas incluse (du moins je crois...))>>#if !defined(__CONIO_H)#define __CONIO_H#if !d pb de retour( du tableau) de ma fonction [ par airwann ] bonjour,j ai un problème comment dois je modifier l'entête de ma fonction pour recupérer le tableau de structure 3 d alloué dynamiquementmerci d avanc transformer un tableau 2d en image bitmap [ par gyzmo1 ] Bonjour a tous, voilà mon problème, je suis en train de mettre en place une méthode de comparaison de signature manuscrites. Cette méthode s applique jai un probleme avec ma source!!!!! jai vérifeir et je ne trouve rien...pouvez vous m'aider.... [ par retaks666 ] alors jai veut faire un programme ki génére une suite de caractere d'un nombre donné...et sa marche po... je vous done ma source si vous pouvez m'aide Segmentation Fault....en traitement d'image [ par psysta ] Bonjour,je suis nouveau dans la programmation en C. J'ai un programme Matlab qui marche bien, et je souhaiterais l'implémenter en C. Le pgm compile bi PB DIALOGBOX (Win32) [ par moustachu ] Bonjour,Je dois recréer des projets VC++6.0 à partir des fichiers dont je dispose. Le problème se pose avec un fichier chgmod.rc. J'arrive bien à l'ou class matrice [ par flaky ] Slt à tousJ'utilise une classe "matrice" (celle de nicolas aunai, téléchargée sur le site) qui fonctionne très bien. Mais j'ai du mal à manipuler l'ob


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,482 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales