-
Posts
96 -
Cadastrado em
-
Última visita
Reputação
0-
crosspopz1 alterou sua foto pessoal
-
Excel Criando aba baseado em valor da celula
crosspopz1 postou um tópico em Microsoft Office e similares
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? -
Criação de relatórios automáticos no excel
crosspopz1 respondeu ao tópico de crosspopz1 em Microsoft Office e similares
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 -
Criação de relatórios automáticos no excel
crosspopz1 postou um tópico em Microsoft Office e similares
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? -
Windows não volta depois de desligar video
crosspopz1 respondeu ao tópico de crosspopz1 em Versões até Windows 8
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. -
Windows não volta depois de desligar video
crosspopz1 respondeu ao tópico de crosspopz1 em Versões até Windows 8
César, todos os drivers que instalei, baixei direto do site da DELL. -
Windows não volta depois de desligar video
crosspopz1 respondeu ao tópico de crosspopz1 em Versões até Windows 8
Fica continuo o de Power e o de HD acende pouco. -
Windows não volta depois de desligar video
crosspopz1 respondeu ao tópico de crosspopz1 em Versões até Windows 8
César, tentei aqui, porém mesmo erro. -
Windows não volta depois de desligar video
crosspopz1 respondeu ao tópico de crosspopz1 em Versões até Windows 8
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. -
Windows não volta depois de desligar video
crosspopz1 respondeu ao tópico de crosspopz1 em Versões até Windows 8
Sim, no momento a solução é deixar como "Nunca" para desligar o vídeo. Mas não é interessante né -
Windows não volta depois de desligar video
crosspopz1 respondeu ao tópico de crosspopz1 em Versões até Windows 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, -
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?
-
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