Shinriel |
Le 09/09/2006 à 19:16 |
|
|
Bonjour,
Dans le cadre d'une création d'une interface via mon ordinateur et des moteurs, led ou autre, je recherche comment avoir le tableau de toute les adresses de ma Mémoire Vive.
On m'a déjà dit qu'on pouvait recuperer ce "tableau" avec les différentes adresses, et savoir à quel application elle étaient associées, mais après quelques recherches je n'ai rien trouvé.
C'est pour celà que je me tourne vers vous, en espèrant qu'une personne aura la solution.
Je remerci ceux qui passeront sur ce poste. Et encore plus ceux qui trouveront ma réponse. |
Tigene |
Le 09/09/2006 à 19:39 |
|
 Viconaute Modérateur |
salut
ce n'est pas plutot les adresses des sorties dont tu as besoin ?
j'ai fait cela, il y a qq années, et j'avais les adresses des sorties de l'interface pour commander divers relais, commutateurs et appareils de mesures.
@+ -- Ce n'est pas parce qu'on a quelque chose à dire, qu'il faut forcément l'ouvrir |
Shinriel |
Le 09/09/2006 à 20:02 |
|
|
Rebonjour,
Enfaite je recherche les entrées et sorties, je m'explique :
Je n'ai qu'un seul exemple mais il montre bien se que je veux faire,
Quand on branche une prise parrallèle sur l'ordinateur, 3 adresses au niveaux de la ram y sont dédié (adresse en hexadecimale) -378 qui est faite pour l'ecriture -379 qui permet la lecture de donnée -37A qui permet l'écriture et la lecture
Par exemple on peut entre autre y brancher une imprimante, celle-ci reçoit les données à imprimer, mais peut aussi renvoyer des erreurs, comme dire qu'elle est déjà utilisée par un autre utilisateur, qu'il n'y a plus de papier, etc ....
Pratique pour renvoyer la valeur d'un capteur.
à bientôt. |
Ionace |
Le 10/09/2006 à 18:27 |
|
|
Salut ! sans vouloir dire de betise tu pourrais peut etre te tourner du cote de l'asm pour ce genre de chose tout en gardant a l'esprit que connaitre toutes les adresses de ta ram peut faire planter ton programme si tu pars a leurs recherches par scan. 32 bits oblige, il risque d'y avoir une violation d'acces. Desole de ne peut pas pouvoir t'aider d'avantage...
@++ et bon courage |
Shinriel |
Le 11/09/2006 à 22:39 |
|
|
C'est une idée, mais elle prendrais du temps j'ai trouvé un site qui en parle brievement n'étant pas son interêt premier Premier lien cliquable( ce site explique bien comment utiliser le port parallèle : Deuxième lien cliquablep j'ai pas eut le temps de lire mais il a l'air interresant : Troisième lien cliquable) Je vous tiens au courant de toute façon. |
Ionace |
Le 16/09/2006 à 16:09 |
|
|
Salut ! Ah mais c'etait pour ton port parallele ?? Z'avais pô compris ... en theorie si t'es sous windows tu utilise la fonction createfile() et au nom du fichier, au lieu de lui mettre une variable contenant un string, tu tapes directement sa pour ouvrir le port com = > CreateFile("COM1", blabla... pareille pour le com2 ect .. faudrait tester avec "LPT1", "LPT2" ect.. Apres c'est simple, createfile() te renvoi un handle vers lequel tu peut ecrire avec les fonctions WriteFile() et lire avec ReadFile(). Dis moi csi sa amrche (sa pourra toujours me servir pour plutart :p) Voici quelques liens : http://www.cppfrance.com/codes/ECRITURE-LECTURE-PORT-PARALLELE_30849.aspxhttp://www.cppfrance.com/codes/PORT-PARALLELE-SOUS-WIN-XP_21060.aspxEn esperant que sa te serves (cherche bien sur cppfrance, y en a un floppe de prog dans ce genre ...) @++ PS : sous linux c'est encore plus simple car tu n'as qu'a utilsier la fonction fopen() sur un fichier dans /Dev/ .. par contre je sais plus lequel (dsl) mais je sais ou le trouver, si sa t'interesse, je peut te montrer des exemples de codes ! |
Shinriel |
Le 18/09/2006 à 20:21 |
|
|
//Lecture:
unsigned short commande;
commande=_inp(890); /* Registre de commande */
donc on peut utiliser ce registre comme entrée
//écriture:
void ecritPRN(int bit)
{
_outp(888,bit);
}
Celon ton deuxieme lien.
Merci de ton aide, sa n'a pas l'air compliquer à utiliser si on utiliser ces commandes ;)
en tout cas une chose que je n'avais pas comprit, c'est que la plus part des commandes demandes une valeur Decimale de l'adresse. Car bêtement je cherchais une commande demandant leur valeur hexadecimale.
j'ai pas beaucoup de temps libre en ce moment, mais je vais bien trouver un jour, un peu de temps...
|
Ionace |
Le 19/09/2006 à 20:31 |
|
|
Salut !
Attention a ces commandes qui touchent au registres, elles dependent fortement du compilateur. POur mettre une valeur en hexa, fais la suivre par un 0x !
exemple => 10 = 0xa
@ plouche ! |
Shinriel |
Le 19/09/2006 à 23:31 |
|
|
Merci encore |
Ionace |
Le 22/09/2006 à 16:48 |
|
|
|