sexta-feira, 12 de junho de 2015

C CODES #01



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


  #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.

Um comentário: