Bonjour,

j'essaye de piloter des I/O d'une carte mère mini-ITX (Axiomtek SBC86807). Je sais que sous Xp, on ne peut pas attaquer directement avec inportb/outportb. J'ai donc essayer par un CreateFile, çà compile mais ne marche pas: INVALID_HANDLE_VALUE

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <windows.h>
#include <iostream>
#include <dos.h>

#define ADDR_DIO   0x40B8

void Init_IO( void );
void Write_IO( long data );


using namespace std;
HANDLE hIO;      // déclarer un handle  

int main (int argc, char *argv[])
{ 
    Init_IO();
    Write_IO(0x00);
    cout << "Press ENTER to continue..." << endl; 
    cin.get();
    return 0;
}


void Init_IO( void )
{

 char adresse[7];
 sprintf( adresse, "0x40B8");

 hIO = CreateFile( adresse, GENERIC_READ | GENERIC_WRITE, 0, NULL,                            
       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );

	if( hIO == INVALID_HANDLE_VALUE )
    	cout << "Error opening IO!" << endl;
}

void Write_IO( long data )
{
     DWORD written;  // variable qui recoit le nombre de byte écrit
     WriteFile( hIO, &data, 1, &written, NULL );
}

Voilà, je pige pas trop pourquoi çà marche pas.... j'ai un doute sur mon adresse....