Ir ao conteúdo
  • Cadastre-se

crosspopz1

Membro Pleno
  • Posts

    96
  • Cadastrado em

  • Última visita

Reputação

0
  1. Pessoal, não sou expert em vba, mas estou me aventurando em criar uma planilha que me ajude na minha loja. A primeiro momento estou querendo criar um botão para fazer alguns cálculos baseados em alguns valores. Quero que o resultado seja impresso em uma aba com o mês que eu estiver calculando. Eu defino que seja o mês de março e clico no botão, então é validado se já existe a aba do mês em questão aí é criado uma aba ou não. Podem ajudar?
  2. Vagner segue em anexo. Nos dados do Facebook mostra simplesmente valores diários para tudo, e na outra planilha dois gráficos simples. A ideia é que eu retire todo mês esses valores, mas não tenha que ficar selecionando cada coluna e gerando gráficos, e sim a planilha automatizada buscar o que eu quero e gerar esses gráficos. Obrigado pela ajuda. Exemplo dados Facebook.xml Exemplo gráficos.xlsx
  3. Boa noite. Estou tentando criar um relatório automatizado do Facebook no Excel. Hoje consigo extrair um relatório do Facebook, porém vem com muitos dados junto e gostaria de separar cada coluna e gerar um gráfico para cada tópico. Gostaria de buscar dentro desse relatório os dados e colar em uma outra planilha, para aí sim gerar esse gráfico. Porém não tenho o conhecimento de macros e automatização disso. Alguém?
  4. César, eu desativei o driver da placa de vídeo AMD e o problema foi resolvido. Agora resta saber se há um driver novo pra isso.
  5. César, todos os drivers que instalei, baixei direto do site da DELL.
  6. A opção não está como "Equilibrado" está como "DELL". De qualquer forma mudei o Disco Rigido para "Nunca", logo vou testar e lhe aviso. Atenciosamente.
  7. Sim, no momento a solução é deixar como "Nunca" para desligar o vídeo. Mas não é interessante né
  8. César, obrigado pela resposta, porém já está configurado para nunca suspender e mesmo assim não resolveu. O problema acontece quando ele apaga o vídeo, não necessariamente suspendendo. Att,
  9. Boa tarde. Tenho um notebook DELL Latitude 3540 com Windows 8.1 que está com um problema quando ele desliga o vídeo. Após aguardar 5 minutos ou bloquear a tela o video apaga conforme sua configuração, porém, quando tento mexer o mouse ou qualquer tecla para voltar, ele simplesmente não volta! Preciso desligar o notebook segurando o botão POWER e ligar novamente. Alguma luz?
  10. Boa tarde galera, gostaria saber se vai dar certo e as conexoes necessarias para isso. Esse teclado. http://produto.mercadolivre.com.br/MLB-196067975-teclado-matricial-4x4-pic-16-teclas-p-projetos-eletrnico-_JM Esse pic (18F4550) http://produto.mercadolivre.com.br/MLB-196573818-pic-18f4550-microcontrolador-pic18f4550-_JM Esse display LCD. http://produto.mercadolivre.com.br/MLB-195368440-display-lcd-16x2-c-back-verde-p-microcontrolador-pic-atmel-_JM programação .c segue nos proximos O problema é que na teoria eu já sei algo, mas as conexoes que estão complicadas. * * Curso PICMINAS de Microcontroladores (PIC18F4550) * ****************************************************************************** * Nome do Arquivo: Teclado_16Teclas * Dependencias: Veja seção INCLUDES * Processador: PIC18F4550 * Opção de Clock: HS 20MHz (externo) - CPU: 48MHz * Compilador: C18 v3.20 ou superior * Empresa: PICMINAS - Axoon - UFMG * * Plataforma: Kit PICMINAS v2.0 * * Autor: James Hamilton Oliveira Junior * * Data: v1 - 24/Jan/2010 * v2 - 25/Jan/2010 * v3 - 26/Jan/2010 * v4 - 28/Jan/2010 * * Descrição: Biblioteca de funções para ler de um teclado de 16 ou 12 teclas * (4x4 ou 4x3) através de interrupções. O teclado deverá ser * conectado a porta do microcontrolador que possui interrupções * de grupo, no caso do PIC18F4550, portaB de RB4 até RB7. * * O funcionamento de um teclado do tipo matriz é simples. Sempre que * uma tecla é pressionada, a linha a coluna são conectas. Por exemplo, * pressionada, a linha 2 ficará com nivel logico 1 também. * * No uso desse teclado com o microcontrolador, conectamos suas linhas * em portas de output, e suas colunas em portas de input. As colunas * são conectas am pinos de input do microcontrolador e assume nivel * logico 1. Colocando nivel logico 0 nas linhas, podemos saber quando * uma tecla é pressionada pela variação de uma coluna. Para indentificar * a tecla, basta fazer uma busca pelo teclado, alternando o bit '0' * entre as linhas e verificando qual coluna permanece em '0'. * * As coluna do teclado devem ser conectas as portas com interrupções * ,inputs, enquanto as linhas devem ser conectas a portas configuras * como outpus. O esquema abaixo demonstra as ligações * * * C C C C * O O O O * L L L L * U U U U * N N N N * A A A A * | | | | * 0 1 2 3 -> Coluna 3 não implementada * : : : : * : : : : * __: __: __: __: * |00| |01| |02| |03| * LINHA_0 --------|__|----|__|----|__|----|__| * : : : : * __: __: __: __: * |10| |11| |12| |13| * LINHA_1 --------|__|----|__|----|__|----|__| * : : : : * __: __: __: __: * |20| |21| |22| |23| * LINHA_2 --------|__|----|__|----|__|----|__| * : : : : * __: __: __: __: * |30| |31| |32| |33| * LINHA_3 --------|__|----|__|----|__|----|__| * * * * Como queremos que os pinos de input do PIC fiquem em nivel * logico alto (1) quando desconectados (nenhuma tecla pressionada) * precisamos habilitar os resistores de pull-up internos * ou acrescentar resistores externos: * * Resistores de Pull-up: * * /|\ * /_|_\ Vcc * | * | * _|_ * | | * | R | * |_ _| * | () * | \ | GND * __|____ \ || * pino |_________() \______||| * _______| ||| * || * | * * para habilitar os pull-ups da porta B: INTCON2bits.RBPU=0; * pagina 114, item 10.2 do datasheet do PIC18F4550: * * "Each of the PORTB pins has a weak internal pull-up. A * single control bit can turn on all the pull-ups. This is * performed by clearing bit, RBPU (INTCON2<7>). The * weak pull-up is automatically turned off when the port * pin is configured as an output. The pull-ups are * disabled on a Power-on Reset." * * *****************************************************************************/ /*****************************************************************************/ // // I N C L U D E S // // /*****************************************************************************/ #include "Teclado_16Teclas.h" /*****************************************************************************/ // // V A R I Á V E I S // // /*****************************************************************************/ unsigned int Matriz_Teclado[4][3]; //Matriz de teclas pressionadas o primeiro //unsigned int Matriz_Teclado[4][4]; //indice indica a linha e o segundo a coluna //a matriz é 4x3, (4 linhas e 3 colunas) mas //é possivel adicionar mais uma coluna, basta //descomentar alguns comandos int Teclado_Flag = 0; //Flag, indica se o a Matriz_Teclado foi escrita //pela interrupção (Teclado_Flag = 1) e/ou se ja //foi lida pelo programa (Teclado_Flag = 0) /*****************************************************************************/ // // F U N Ç Õ E S // // /*****************************************************************************/ /****************************************************************************** * Funcao: void Interrupcao_Teclado (void) * Entrada: Nenhuma (void) * Saída: Nenhuma (void) * Descrição: Funcao a ser executada quando uma interrupcao * do teclado ocorrer. Determina as teclas pressionadas * por meio de uma matriz: Matriz_Teclado[][] onde o primeiro * colchete representa as linhas e o segundo as colunas. * * Essa função deve ser chamada quando a interrupção ocorrer. * Ela apenas "lê" o teclado e armazena as teclas que foram * pressionadas em uma matriz. A função insere um '0' nas * posições da matriz onde teclas foram pressionadas. * * A função Interrupção_Teclado, entretanto, não evita "bounce", * ficando sob responsabilidade do usuário. * * Uma sugestão consiste em, cada vez que uma interrupção * ocorrer, desabilitar as interrupções do teclado e disparar * um timer. Quando a iterrupção do timer ocorrer, as * interrupções do teclado são novamente habilitadas. * *****************************************************************************/ void Interrupcao_Teclado (void) { // if (Teclado_Flag == 0) //enquanto o buffer não for lido pelo programa, // { //uma nova leitura não será feita. LINHA_0 = 0; LINHA_1 = 1; //seta apenas uma das linhas de cada vez, e LINHA_2 = 1; //testa as colunas, assim é possivel identificar LINHA_3 = 1; //as pressionadas Matriz_Teclado[0][0] = COLUNA_0; Matriz_Teclado[0][1] = COLUNA_1; Matriz_Teclado[0][2] = COLUNA_2; //Matriz_Teclado[0][3] = COLUNA_3; //coluna desativada, para ativar, basta descomentar //essa linha e a linhas dos defines no arquivo .h LINHA_0 = 1; LINHA_1 = 0; LINHA_2 = 1; LINHA_3 = 1; Matriz_Teclado[1][0] = COLUNA_0; Matriz_Teclado[1][1] = COLUNA_1; Matriz_Teclado[1][2] = COLUNA_2; //Matriz_Teclado[1][3] = COLUNA_3; LINHA_0 = 1; LINHA_1 = 1; LINHA_2 = 0; LINHA_3 = 1; Matriz_Teclado[2][0] = COLUNA_0; Matriz_Teclado[2][1] = COLUNA_1; Matriz_Teclado[2][2] = COLUNA_2; //Matriz_Teclado[2][3] = COLUNA_3; LINHA_0 = 1; LINHA_1 = 1; LINHA_2 = 1; LINHA_3 = 0; Matriz_Teclado[3][0] = COLUNA_0; Matriz_Teclado[3][1] = COLUNA_1; Matriz_Teclado[3][2] = COLUNA_2; //Matriz_Teclado[3][3] = COLUNA_3; LINHA_0 = 0; //todas as linhas são colocadas novamente LINHA_1 = 0; //em '0', dessa forma, quando uma nova tecla LINHA_2 = 0; //for pressionada haverá interrupção. LINHA_3 = 0; Teclado_Flag = 1; //seta o flag, indicando para o programa que //o teclado foi escrito, ele não será escrito // }//fim if //de novo ate que seja lido pelo programa }//fim Interrupcao_Teclado /****************************************************************************** * Funcao: void Tecla_Pressionada (unsigned char Linha, unsigned char Coluna) * * Entrada: unsigned char Linha -> linha da matriz que se deseja acessar (de 0 até 3) * unsigned char Coluna -> coluna da matriz que se deseja acessar (de 0 até 2 ou 3) * * Saída: Nenhuma (void) * Descrição: Funcao que retorna o bit binario invertido contido na * matriz do teclado. Se a tecla de coordendas indicadas * pelas entradas da função tiver sido pressionada, será * retornado o valor '1', se a tecla não tiver sido pressionada * a função retorna '0' * *****************************************************************************/ unsigned int Tecla_Pressionada (unsigned char Linha, unsigned char Coluna) { return !Matriz_Teclado[Linha][Coluna]; //retorna 1 se a tecla foi pressionada //e 0 se não foi. } /*****************************************************************************/ /****************************************************************************** * Funcao: void Teclado_Escrito (void) * * Entrada: Nenhuma(void) * Saída: Nenhuma (void) * Descrição: Funcao que retorna o valor do flag do teclado (Teclado_Flag). * Se o valor retornado for 1, o a matriz do teclado foi escrita * pela rotina de interrupção e portanto possui informações não * processadas pelo programa, se seu valor for '0', a matriz do * teclado ja foi lida pelo programa e não contem informações * novas. * *****************************************************************************/ unsigned int Teclado_Escrito (void) { return (Teclado_Flag); //retorna 1 se teclado foi escrito } /*****************************************************************************/ /****************************************************************************** * Funcao: void Teclado_Lido (void) * * Entrada: Nenhuma(void) * Saída: Nenhuma (void) * Descrição: Funcao que retorna zera o valor do flag do teclado (Teclado_Flag). * Dessa forma, o programa indica que a matriz do teclado já foi lida, * habilitando a rotina de interrupção a escrever na matriz caso uma * nova tecla seja pressionada * *****************************************************************************/ void Teclado_Lido (void) { Teclado_Flag = 0; } /*****************************************************************************/ /****************************************************************************** * Funcao: unsigned int Posicao_Teclado (void) * * Entrada: Nenhuma(void) * Saída: Nenhuma (void) * Descrição: Funcao que retorna a posição da primeira tecla encontrada * na matriz de teclas. Se nenhuma tecla tiver sido pressionada, * a função retorna '99', um código de erro. * *****************************************************************************/ unsigned int Posicao_Teclado (void) { int i, j; for (i=0; i<=3; i++) { for(j=0; j<=2; j++) //opera apenas para teclado 12 teclas //for(j=0; j<=3; j++) //descomentar essa linha e comentar a { //de cima para teclado de 16 tecals if (Matriz_Teclado[i][j] == 0) { Teclado_Flag = 0; return ((i*10)+j); //retorna a posiçao da primeira tecla encontrada } } } Teclado_Flag = 0; return 99; //nenhuma tecla pressionada 'erro' }//fim função /*****************************************************************************/ /****************************************************************************** * Funcao: void Limpa_Matriz_Teclado (void) * * Entrada: Nenhuma(void) * Saída: Nenhuma (void) * Descrição: Funcao que 'limpa' todas as posições da matriz do teclado. * A função percorre todas as posições atribuido o bit '1'. * Ou seja, que a tecla dessa posição não foi pressionada * *****************************************************************************/ void Limpa_Matriz_Teclado (void) { int i,j; for(i=0; i<=3; i++) { for (j=0; j<=2; j++) //opera apenas para teclado 12 teclas //for (j=0; j<=3; j++) //descomentar essa linha e comentar a { //de cima para teclado de 16 tecals Matriz_Teclado[i][j] = 1; } } } /*****************************************************************************/ /****************************************************************************** * Funcao: void Inicializa_Teclado (void) * * Entrada: Nenhuma(void) * Saída: Nenhuma (void) * Descrição: Funcao que iniciliza o teclado, garantido que os valores * lidos seja corretos. A função limpa a matriz do teclado, * reseta o flag_do teclado, e coloca nas linhas (outputs) o * bit '0', para que qualquer tecla pressionada possa gerar * a primeira interrupção * *****************************************************************************/ void Inicializa_Teclado (void) { Limpa_Matriz_Teclado(); Teclado_Flag = 0; //habilita teclado para a escrita LINHA_0 = 0; //seta as portas de output para detectar uma LINHA_1 = 0; //tecla pressionada. LINHA_2 = 0; LINHA_3 = 0; } /****************************************************************************** * Funcao: unsigned int Numero_Teclado (void) * * Entrada: Nenhuma(void) * Saída: Nenhuma (void) * Descrição: Funcao que retorna o NUMERO da primeira tecla encontrada * na matriz de teclas. Se nenhuma tecla tiver sido pressionada, * a função retorna '99', um código de erro. * *****************************************************************************/ unsigned int Numero_Teclado (void) { int i, j; for (i=0; i<=3; i++) { for(j=0; j<=2; j++) { if (Matriz_Teclado[i][j] == 0) { if (i!=3) //determina o numero da tecla pressionada { //os caracteres da linha 3 sao uma excessao Teclado_Flag = 0; return ((3*i+1+j)); } else //analisa os caracteres especiais da { //ultima linha do teclado switch(j) { case (0): //caso * Teclado_Flag = 0; return 10; break; case (1): //caso 0 Teclado_Flag = 0; return 0; break; case (2): //caso # Teclado_Flag = 0; return 11; break; } } }//fim if }//fim for }//fim for Teclado_Flag = 0; return 99; //se nehuma tecla encontrada retorna //codigo de 'erro' 99 }//fim função //**************** F I M D O A R Q U I V O *****************/ /*****************************************************************************/ /******************************************************************************

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...