Anonymous Programmer
-
Posts
67 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Anonymous Programmer
-
-
Coloca os dados dentro de uma struct depois carregue todos os logins salvos no arquivo .txt dentro dessa struct cada um por vez, ao mesmo tempo comparando com os dados de entrada, através da função memcpy(); você vai conseguir comparar o login e senha ao mesmo tempo!
- 1
-
Poww cara boa ideia para minha sorte tenho um aqui! não é o mesmo mais já ajuda 74HC4020N! vou tentar e posto resultados obg! @Bommu Perneta
-
Pessoal estou tentando funcionar um motor de HDD em um PIC16F628A, preciso gerar 3 ondas quadradas para cada bobina em sequencia Ex:
Estagio 1:
BCF PORTB,RB1
BCF PORTB,RB2
BSF PORTB,RB3
Estagio 2:
BSF PORTB,RB1
BCF PORTB,RB2
BCF PORTB,RB3
Estagio 3:
BCF PORTB,RB1
BSF PORTB,RB2
BCF PORTB,RB3
volta estagio 1
porém da forma que planejei a alteração de frequência esta muito brusca travando o motor minha rotina de delay é a seguinte:
delay:
movfw tempo
movwf contador1
aux:
movwf contador2
decfsz contador1
goto p_nao
goto p_sim
p_nao:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
decfsz contador2
goto p_nao
goto aux
p_sim:
returncontrolo o contador1 e contador2 a partir de interrupções, porém a frequência altera bruscamente travando o motor, existe alguma forma de controle do tempo em 0v e 5v precisa, tipo um PWM ? infelizmente o PIC que utilizo só tem 1 PWM e necessito de 3 ou simular elas de alguma forma..
-
Funcionou pessoal obrigado ai!
-
#include p16f628a.inc> __config _mclre_on & _lvp_off & _boden_off & _hs_osc & _wdt_off & _cp_off #define bank0 bcf status,rp0 #define bank1 bsf status,rp0 #define led porta,ra1 org 0x0000 goto inicio inicio: bank1 bcf trisa,ra1 bcf option_reg,t0cs bcf option_reg,psa bsf option_reg,ps2 bsf option_reg,ps1 bsf option_reg,ps0 bcf intcon,t0if bank0 bsf led dnv:btfss intcon,t0if goto nao goto sim nao: bcf intcon,t0if goto dnv sim: btfsc led ;; = 0v goto led_nao goto led_sim led_nao: bcf led bcf intcon,t0if goto dnv led_sim: bsf led bcf intcon,t0if goto dnv end
o codigo no proteus funciona normalmente, porém quando vou gravar o pic ele não pisca!
-
Já concertei o problema ! resolve colocando resistor de pull-down no pino do botão, aqui segue os fuses porque agora estou com outra duvida @Isadora Ferraz, por curiosidade desliguei os fios terra do cristal e o PIC funcionou normalmente, retirei todo o cristal e capacitores e o PIC funcionou normalmente :\ afinal das contas qual a funcionalidade do cristal ? já que sem ele funciona do mesmo jeito
__config _HS_OSC & _LVP_OFF & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BOREN_OFF & _CPD_OFF
-
Pessoal comecei recentemente na programação de PIC e já mim deparo com um problema.
Meu código recebe um botão em RA0 e 1 LED no RA1 + outro LED no RB0 o codigo segue abaixo:
#include <p16f628a.inc> #define bank0 BCF STATUS,RP0 #define bank1 BSF STATUS,RP0 #define BTN PORTA,RA0 #define LED PORTA,RA1 #define LED2 PORTB,RB0 org 0x0000 goto inicio org 0x0004 retfie CBLOCK 0x0C ENDC inicio: bank1 BSF TRISA,RA0 BCF TRISA,RA1 BCF TRISB,RB0 bank0 BSF LED de novo:BTFSC BTN goto btn_press goto btn_lib btn_press: BSF LED BCF LED2 goto de novo btn_lib: BCF LED BSF LED2 goto de novo END
porém o PIC não esta executando esse código, o RA1 sempre fica ligado o RB0 fica piscando de forma aleatória ( passa varios segundos desligado da uma piscada rapida e desliga )
e como vocês podem ver no código o LED fica ligado ate apertar o botão, o LED2 liga assim que o botão é pressionado
desde já agradeço
Infos:
PIC16F628A
Crystal Externo - 20mhz ligado a 2x capacitores de 22pf
Leds - auto brilho, 3,3v + resistores de 62R
-
@DELPITEC @Isadora Ferraz valeu pessoal suspeitei que era necessário ativar como saída para não ficar na duvida postei aqui vou dar uma estudada no datasheet e tentar novamente valeu!!
-
Boa tarde galera, estou iniciando na programação de PIC começando com o 16f628a consigo colocar 5v em todos os pinos exceto o RA4 alguem poderia mim ajudar o porque disso?
#include <p16f628a.inc> list p=p16f628a #define bank0 BCF STATUS,RP0 #define bank1 BSF STATUS,RP0 #define LED1 PORTA,RA0 #define Esp PORTA,RA4 #define LED2 PORTA,RB7 #define volt PORTB,RB0 __config _MCLRE_OFF org 0x0000 goto main org 0x0004 retfie main: bank1 BCF TRISA,RA0 ;; RA0 BCF TRISA,RA4 ;; RA4 BCF TRISB,RB7 BCF TRISB,RB0 bank0 BSF LED1 ;; Ativa LED1 BSF LED2 ;; Ativa LED2 BSF volt ;; Ativa voltimetro BSF Esp ;; Ativa RA4 goto $ end
-
Qualquer duvida poste aqui. tentarei ajudar
- 1
-
Responde um exercício recentemente para a faculdade... espero que te ajude!
#include <stdio.h> #include <locale.h> void main(){ setlocale(LC_ALL,"portugues"); int term1=0,term2=0,termx=0,razao; int vetor[50]; printf("Digite o primeiro termo de uma PA: "); scanf("%d",&term1); fflush(stdin); printf("Digite o segundo termo de uma PA: "); scanf("%d",&term2); fflush(stdin); printf("Em qual posição do termo voce quer saber: "); scanf("%d",&termx); fflush(stdin); razao = term2 - term1; vetor[0] = term1; vetor[1] = term2; for(int aux=0;aux <=termx;aux++){ if(aux > 1){ vetor[aux] = vetor[aux-1] + razao; } } printf("o valor no ponto %d é %d \n",termx,vetor[termx]); }
nesse algoritmo utilizei um laço de repetição for(); porém você também pode fazer com while(); colocando if() para controlar a repetição tipo
if(Termos da PA == QUANTIDADE DE TERMOS CALCULADOS){
break; // PARA!
}
-
não podemos responder suas questões podemos auxiliar, pode ser em linguagem C puro ?
Em C simplesmente declare 2 vetores
char vetor1[10];
char vetor2[10];
preencha os vetores
int aux = 0;
while(1){
if(aux == 10){
scanf("%d",&vetor1[aux]);
}
aux++;
}
repete o processo com o vetor 2
retira a media dos vetores
int aux1=0,acumuladora=0;
while(1){
if(aux1 == 10){
acumuladora = vetor1[aux1];
acumuladora = acumuladora + acumuladora;
}
}
e repete o processo
- 2
-
Também ;D kkkkk relaxa amanhã na aula de Cristiane a gente ver com ela.
-
essa liga de C que você participa coloca uns desafios complicados em....
-
Alguma API de programação cognitiva
-
Posta o codigo-fonte né amigo sem olhar fica difícil ajudar
- 1
-
cara realmente o site da microsoft é confuso porém extremamente útil você só precisa de um inglês básico. Aprenda a utiliza-lo se você vai no futuro ser da área de programação interpretar as documentações das APIs é fundamental
-
Bom o que pra utilizar a função ReadProcessMemory ou WriteProcessMemory da API kernel32.dll você precisa passar para ela argumentos que ela necessita.
Analisando o primeiro poste que te mandei. Vejamos
ReadProcessMemory( _In_ HANDLE hProcess, _In_ LPCVOID lpBaseAddress, _Out_ LPVOID lpBuffer, _In_ SIZE_T nSize, _Out_ SIZE_T *lpNumberOfBytesRead );
Primeiro Argumento ela pede uma HANDLE de um Processo ( um identificador de um processo ) como vamos conseguir esse identificador através de programação? utilizando a função GetWindowThreadProcessId sem progamação você pode simplesmente visualizar no monitor de recursos do seu computador vai ter uma lista de programas em execução é seus respectivos PID ( Processo Identificador ). porém para automatizar nosso programa utilizaremos a API.
Analisando a Função GetWindowThreadProcessId elá requer uma HANDLE de uma função e uma Variavel para retornar o valor do PID. ou seja ainda temos que encontrar outro valor primeiro.. que fica a cargo da função FindWindow. a função FindWindow requer uma Classe é o nome da Janela somente. por tanto vamos la!. lembrando que ela retorna o valor da nossa HANDLE.
HWND hProcess;
hProcess = FindWindow(0,"Calculadora"); (a função vai procurar a PID do processo cujo nome da janela seja Calculadora, o primeiro argumento seria a classe. coloca 0 o segundo argumento o Nome da janela em char ) assim ja temos o valor da HWND. que e necessario para Preencher a GetWindow.....
DWORD hPid;
GetWindowThreadProcessId(hProcess,&hPid); ( primeiro argumento HWND ja capturado. segundo argumento uma variavel para receber o PID de retorno ).
agora que ja temos o hPid vamos executar o processo.
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,0,hPid);
pronto agora ja temos o HANDLE para a WriteProcess... é ReadProcess...
ReadProcessMemory(hProcess,(LPVOID)0x00400000,&VariavelParaReceberValor,256,BytesLidos);
Portanto primeiro argumento a HANDLE Segundo Local onde você quer ler os bytes. Terceiro Total de bytes a ser lido. Quarto Uma variavel para receber o valor de total de bytes lidos!. é pronto pra Usar a WriteProcess.. você simplesmente em vez de colocar uma variavel para receber o valor. coloca uma variavel com o valor.
utilize sempre o site da microsoft para conhecer melhor as funções da API do windows. ela é de extrema importância para qualquer programador.
- 1
-
Não é que todos programas estão sujeitos a serem hackeados. .-. alguns não permitem ser executado pela função ReadProcessMemory nem WriteProcessMemory. para poder ler voce utiliza:
BOOL WINAPI ReadProcessMemory( _In_ HANDLE hProcess, _In_ LPCVOID lpBaseAddress, _Out_ LPVOID lpBuffer, _In_ SIZE_T nSize, _Out_ SIZE_T *lpNumberOfBytesRead );
pra alterar utiliza
BOOL WINAPI WriteProcessMemory( _In_ HANDLE hProcess, _In_ LPVOID lpBaseAddress, _In_ LPCVOID lpBuffer, _In_ SIZE_T nSize, _Out_ SIZE_T *lpNumberOfBytesWritten );
- 1
-
#include <stdio.h> #include <stdlib.h> void CadastrarAlunos(); void ListarAllAlunos(); void PesguisarCodigo(); void ExcluirCodigo(); struct Alunos{ int ID; char Nome[256]; char Email[100]; char telefone[10]; }; void main(int args,char * params[]){ int recebido = 0; dnv:printf("MENU \n"); printf("1. Cadastrar Novo Aluno \n"); printf("2. Listar todos os alunos cadastrados \n"); printf("3. Pesguisar por codigo \n"); printf("4. Excluir por codigo \n"); printf("Escolher: "); scanf("%d",&recebido); switch(recebido){ case 1: CadastrarAlunos(); break; case 2: ListarAllAlunos(); break; case 3: PesguisarCodigo(); break; case 4: ExcluirCodigo(); break; } system("cls"); goto dnv; } void CadastrarAlunos(){ } void ListarAllAlunos(){ } void PesguisarCodigo(){ } void ExcluirCodigo(){ }
Agora fica mais fácil. aqui ta toda parte de interface. você agora so vai capturar os dados utilizando scanf a estrutura ja ta ai. so falta mesmo capturar os dados e ser feliz
- 1
-
Cara kkkk maldade fazer isso logo no começo serio isso ?. Vou quebrar seu galho estou sem nada pra fazer mesmo. jaja edito com o codigo fonte...
-
Montar notebook isso não existe. você pode comprar um notebook é depois customizar da forma que deseja os Slot's disponíveis HD Slot's de memoria alguns vem com MINI PCI-Express. que eu tenha conhecimento os processadores é GPU's gráficas já vem soldada na placa-mãe. ou seja não tem como alterar o que você pode fazer é comprar um notebook bom que supra suas necessidades é altere o HD é memoria ram! valeu Falou
-
Ha! como comprei na black friday na submarino tava mais caro. para mim foi mais vantagem. Mais assim que chegar mim manda uma msg. falando o que achou da maquina. valeu
-
Como te falei. no site da dell ele vem equipado com 1 Tb de HD + 8GB de Sdd é tela touchscreen. nessa versão que você comprou possui ?
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
Comando while não executa
em C/C#/C++
Postado
chama as bibliotecas #include <stdio.h> e #incluide <stdlib.h> q o system funciona