Olá para todos aqui que escreve é o Sansigolo, hoje venho disponibilizar os códigos, em C, adaptado por mim, para a manipulação de 8 led's via serial usb.
CÓDIGO
Espero que você leitor possa contribuir com sugestões, criticas(construtivas) e com pesquisas relacionadas sobre. Qualquer duvida entre em contato meu email é gabrielsansigolo@gmail.com
Forte Abraço, Sansigolo.
#include <stdio.h> //printf() entre outras.
#include <conio.h> //getch().
#include <windows.h> //Necessário para: LoadLibrary(), GetProcAddress() e HINSTANCE.
//Declaração dos ponteiros para função.
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
typedef short _stdcall (*PtrInp)(short EndPorta);
typedef void _stdcall (*PtrOut)(short EndPorta, short valor);
#define LIGATODOS 85 // 0000 0100
#define F1 59
#define F2 60
#define BIT0LIGALED1 3 // 0000 1010
#define BIT1LIGALED2 15 // 0000 1001
#define BIT2LIGALED3 9 // 0000 1111
#define BIT3LIGALED4 10 // 0000 0011
#define LIGATODOS 4 // 0000 0100
#define DESLIGATODOS 11 // 0000 1011
int main(void)
{
HINSTANCE hLib; //Instância para a DLL inpout32.dll.
PtrInp inportb; //Instância para a função Imp32().
PtrOut outportb; //Instância para a função Out32().
//Carrega a DLL na memória.
hLib = LoadLibrary("inpout32.dll");
if(hLib == NULL) //Verifica se houve erro.
{
printf("Erro. O arquivo inpout32.dll não foi encontrado.\n");
getch();
return -1;
}
//Obtém o endereço da função Inp32 contida na DLL.
inportb = (PtrInp) GetProcAddress(hLib, "Inp32");
if(inportb == NULL) //Verifica se houve erro.
{
printf("Erro. A função Inp32 não foi encontrada.\n");
getch();
return -1;
}
//Obtém o endereço da função Out32 contida na DLL.
outportb = (PtrOut) GetProcAddress(hLib, "Out32");
if(outportb == NULL) //Verifica se houve erro.
{
printf("Erro. A função Out32 não foi encontrada.\n");
getch();
return -1;
}
//-------------------------------------------------------------------------------------------------------------------------
//Uso das funções outportb() e inportb():
unsigned char valor = 128;
while(1){
int input;
cin>>input;
if (input>=0 and input <256) {
outportb(0x378, input);
getch();
}
else {
printf("número inválido\n");
}
}
/*while(valor > 0){
outportb(0x378, valor);
printf ("\nPressione uma tecla para ascender o proximo LED...");
//std::string result = getch();
//cout<<result;
valor = valor >> 1;
}
outportb(0x378, 0);*/
}
Espero que você leitor possa contribuir com sugestões, criticas(construtivas) e com pesquisas relacionadas sobre. Qualquer duvida entre em contato meu email é gabrielsansigolo@gmail.com
Forte Abraço, Sansigolo.
testes
ResponderExcluir