Ir ao conteúdo
  • Cadastre-se

Rogerio Fiorotti

Membro Pleno
  • Posts

    31
  • Cadastrado em

  • Última visita

Tudo que Rogerio Fiorotti postou

  1. Pessoal utilizo o XC8 Pro e tenho a assinatura mensal junto a Microchip, porém neste mês troquei minha máquina (Laptop) e a assinatura é atrelada à um número denominado Host que é definido pelo seu equipamento. Em outras palavras minha assinatura não serve para a máquina atual e a orientação do Microchip é cancelar a atual e comprar outra para a nova máquina. Fiquei chateado com essa informação e minha pergunta é existe algum método para habilitação alternativa?
  2. Bacana esse site mas estou precisando para sw em C. Grato. adicionado 1 minuto depois É no sw em C, já vi isso em algum lugar mas não consegui desenvolver, você tem algum exemplo?
  3. Pessoal estou procurando ajuda em um filtro passa_baixa eficiente para ser aplicado na conversão a/d onde realizo a leitura da saída de um acelerômetro com saida analógica. Grato.
  4. Finalmente! Depois de longo trabalho sucesso em meu projeto, consegui realizar o sistema de comunicação one wire entre meu projeto com PIC12F1840 e e a caixa de programação JetiBox (JetiModel). Agradeço a ajuda e a paciência de todos.
  5. Exatamente Isadora Y é gerado a partir do do canal analógico e X utilizo em outro processo, a finalidade é ter um pequeno delay na perseguição "rs..." de Y por X onde posso eliminar possíveis ruídos..
  6. Pessoal alguém já ouviu a expressão perseguindo uma variável? Vou explicar melhor! Uma variável X está sempre tentando se igualar a outra variável Y somando ou subtraindo 1 (de 1 em 1) não importando o valor de Y, X estará sempre tentando se igualar. Alguém tem uma sugestão? Grato. Rogério
  7. Informação nova, o JETIBOX trabalha como Slave e só envia informações ao Master (que seria minha plaquinha) das teclas pressionadas e recebe de retorno os valores alterados. Ex. Em uma memória do Master (plaquinha) está registrado valor 100 e envia ao Slave (JETBOX) esse valor e mostra no display, utilizando os botões vou incrementando ou decrementando o valor e vai registrando na memória do Master.
  8. Então Paulo, o que o fabricante forneceu é somente o arquivo que postei acima sobre o protocolo, e o que você comentou sobre o FRSKY é semelhante ao que quero.
  9. Veja o funcionamento do minimalismo, rs...
  10. Meu projeto é um temporizador para aeromodelo controlado a cabo tecnicamente falando o VCC (Voo Circular a Cabo), este timer controla o tempo de pré voo (tempo de espera para a rotação do motor), tempo de voo, rotação do motor, trem de pouso e também utiliza um acelerômetro de 3 eixos para medir a aceleração centrípeta e a aceleração linear corrigindo a velocidade do aeromodelo durante o voo. Utilizo o compilador CCS e a pic 12F1840 e hoje todo o ajuste do timer é realizado por botão e LED (piscadas) estou com dificuldades de aceitação no mercado americano por esse motivo e minha opção é utilizar uma caixa de programação como descrita anteriormente. Alguns fabricantes utilizam essas caixas e optei nesta por estar pronta bastando desenvolver a interface para meu projeto, e é ai que a coisa esta pegando pois o fabricante só se prontificou em fornecer aquele documento do protocolo. Bom é isso se você não achar isso o suficiente para me ajudar espero que outros possam. www.cltimer.com
  11. Bom, se eu já tivesse conseguido fazer algo do gênero não estaria aqui solicitando ajuda, dentro dessa caixa tem um MC dda linha 18F cujo firmware é dedicado a comunicação por um fio e já vi desenvolvedores utilizando-a em pic12f mas os caras não dão nenhuma dica sequer. Agora o que você quer que e mostre? algum conhecimento?
  12. Saber pra que serve eu sei, só não sei como fazer......por exemplo: você monta um temporizador com um PIC cujo valor do tempo está registrado em endereço de sua memória e para alterar esse valor usaria essa caixa para isso. Quando conectada lê o valor da memória do PIC altera e grava...
  13. Pode ser que esu esteja enganado mas o 12F675 não tem PWM embutido, então você pode usar a solução acima.
  14. Colega tenta isso. #include <12F675.h> #device ADC=8 #FUSES INTRC_IO //Internal RC Osc, no CLKOUT #FUSES NOMCLR //Master Clear pin used for I/O #use delay(internal=4000000) int1 flag20RTCC = 1; //indica se já completaram 20 RTCC int1 flagPULSO_ALTO = 0; //indica se o pulso esta em nível alto int contRTCC = 0; //contador de RTCC #INT_TIMER0 void TIMER0_isr(void) { contRTCC++; if(contRTCC==7) { set_TIMER0(102); } if(contRTCC==8) { flag20RTCC=1; contRTCC=0; } } #INT_TIMER2 void TIMER2_isr(void) { if(flag20RTCC==1) // DISPARO DO PULSO NIVEL ALTO PWM { flag20RTCC=0; output_high(PIN_A4); //ESC flagPULSO_ALTO=1; } if(flagPULSO_ALTO==1) // CONTROLE DO PULSO NIVEL BAIXO PWM { if(contRTCC==4) { flagPULSO_ALTO=0; output_low(PIN_A4); } } } void main() { setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1|RTCC_8_bit); setup_timer_2(T2_DIV_BY_16,4,1); setup_comparator(NC_NC); enable_interrupts(INT_TIMER0); enable_interrupts(INT_TIMER2); enable_interrupts(GLOBAL); while(TRUE) { //TODO: User Code } }
  15. Pessoal recentemente comprei uma caixa de programação chamada JETIBox cujo fabricante informa o tipo de protocolo que utiliza para desenvolvedores, porém estou perdidinho e gostaria de dicas o que fazer para funcionar com meu projeto. Utilizo PIC 12f1840e a minha ideia é utilizar essa caixa para alterar valores da memória da PIC, anexo como funciona o protocolo. Grato. Rogério Fiorotti EX_Bus_protokol_v121_EN.pdf
  16. Bom....a velocidade no escravo está em 32Mhz e o fuse #FUSES INTRC_IO, reparei que quando tiro o fio de comunicação a PIC volta a funcionar (o Led pisca) então deve haver algo na interrupção externa. Eu não preciso de velocidade na comunicação e sim precisão nos dados lidos e escritos na memória do escravo. Talvez não utilizar a interrupção externa seria mais estável..
  17. Algumas dúvidas: 1) Utilizando o simulador do Proteus funciona uma beleza, mas no hardware não vai. Na compilação aparece a seguinte mensagem: Interrupts disable during call to prevent re_entrancy (@delay-1ms) E creio que isso não está deixando a PIC funcionar. 2) Quando tento mudar o bit da porta A do escravo pra utilizar outro pino ai nem no proteus funciona. Sei que estou sendo muito exigente, mas reconheço que sua boa vontade está sendo super preciosa. Muito Obrigado.
  18. Estou com um problema na inicialização do one_wire onde a porta que estou utilizando não vai pra zero. Utilizo um 18F2550 e a porta é a B3 segundo manual os endereços dos registradores são: /******************************************************************************/ // O código precisa dos bits dos registradores TRIS e PORT referente ao pino. #bit pino_one_wire = 0x81.3 // bit 3 do registrador PORTB (PORTB.3) #bit direcao_one_wire = 0x93.3 // bit 3 do registrador TRISB (TRISB.3) #include <EEPROM_ONE_WIRE.c> /******************************************************************************/ Devo estar fazendo algo de errado...
  19. Escravo: #include <12F1840.h>#device ADC=10#FUSES PUT //Power Up Timer#FUSES NOMCLR //Master Clear pin used for I/O#FUSES NOPROTECT //Code not protected from reading#FUSES NOCPD //No EE protection#FUSES NOBROWNOUT //No brownout reset#FUSES NOCLKOUT //I/O function on OSC2#FUSES NOIESO //Internal External Switch Over mode disabled#FUSES NOFCMEN //Fail-safe clock monitor disabled#FUSES NOWRT //Program memory not write protected#FUSES NOSTVREN //Stack full/underflow will not cause reset#FUSES BORV19 //Brownout reset at 1.9V#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O#use delay(internal=32MHz)#define LED PIN_A0#define DELAY 500#bit pino_one_wire_escrita = 0X10C.2 // Para escrever LATA.2#bit pino_one_wire_leitura = 0x00C.2 // PARA ler PORTA.2#bit direcao_one_wire = 0x08C.2 // TRISA bit 2 para mudar a direção do pino#define _input 1#define _output 0#define _low 0#define _high 1#define _escrita 1#define _leitura 0#INT_EXTvoid EXT_isr(void) { unsigned int16 _aux = 0; unsigned int _i, _address = 0, _value = 0, _value_read = 0; short _operacao; pino_one_wire_escrita = _low; // Prepara o pino com o valor 0 while(!pino_one_wire_leitura) {} // Espera o mestre liberar a linha delay_ms(1); direcao_one_wire = _output; // Coloca zero na linha para indicar ao mestre // que este escravo está presente delay_ms(10); // Deixa em baixo por 10mS direcao_one_wire = _input; // Libera o barramento while(pino_one_wire_leitura) {} // Espera o mestre iniciar o envio do bit de comando // Pegando o bit de comando do { delay_us(1); _aux++; }while(!pino_one_wire_leitura); // Conta o tempo em que a linha ficou em nível baixo if(_aux < 2001) { // menor que 2mS (2000uS) é igual a 1 recebido, operação de escrita _operacao = _escrita; } else { // maior que 2mS é igual a 0 recevido, operação de leitura _operacao = _leitura; } // Pegando o endereço da Operação _aux = 0; for(_i = 0; _i < 8; _i++) { while(pino_one_wire_leitura) {} // Espera a linha ser colocada em zero do { delay_us(1); _aux++; }while(!pino_one_wire_leitura); // Conta o tempo em que a linha ficou em nível baixo if(_aux < 2001) { // menor que 2mS (2000uS) é igual a 1 recebido bit_set(_address, _i); // então seta o bit correspondente. } // A variável _address é iniciada com zero então não há a necessidade de zerar // o bit caso o valor recebido for zero. _aux = 0; } if(_operacao == _escrita) { // Pega o valor a ser escrito no endereço enviado pelo mestre _aux = 0; for(_i = 0; _i < 8; _i++) { while(pino_one_wire_leitura) {} // Espera a linha ser colocada em zero do { delay_us(1); _aux++; }while(!pino_one_wire_leitura); // Conta o tempo em que a linha ficou em nível baixo if(_aux < 2001) { // menor que 2mS (2000uS) é igual a 1 recebido bit_set(_value, _i); // então seta o bit correspondente. } // A variável _value é iniciada com zero então não há a necessidade de zerar // o bit caso o valor recebido for zero. _aux = 0; } write_eeprom (_address, _value); direcao_one_wire = _output; // Coloca a linha em zero para indicar que a escrita terminou delay_us(5); direcao_one_wire = _input; } else { // Se a operação for de leitura _value_read = read_eeprom(_address);// Lê o valor armazenado na posição _address delay_ms(20); // Espera o mestre se preparar para o recebimento for (_aux = 0; _aux < 8; _aux++) { if(bit_test(_value_read, _aux)) { // Verifica o bit a ser enviado se for 1 direcao_one_wire = _output; // Pino em nível baixo 0 delay_ms(2); // por 2mS (bit 1) direcao_one_wire = _input; // Pino em nível alto 1 delay_ms(8); // por 8mS } else { // Se for 0 direcao_one_wire = _output; // Pino em nível baixo 0 delay_ms(6); // por 6mS (bit 0) direcao_one_wire = _input; // Pino em nível alto 1 delay_ms(4); // por 4mS } } }} void main(){ direcao_one_wire = _input; ext_int_edge(H_TO_L); // Necessário para o código funcionar corretamente enable_interrupts(INT_EXT); // habilita a interrupção externa - Interrupção na transição de ALTO para BAIXO enable_interrupts(GLOBAL); // habilita todas as interrupções //Example blinking LED program while(true) { output_low(LED); delay_ms(DELAY); output_high(LED); delay_ms(DELAY); }} Download: http://www.4shared.com/rar/6f4eiBSzba/ONE-WIRE_PIC_PIC.html? Putz, fantástico!!!!! Sabe quando eu iria conseguir desenvolver isso, levaria um mês no mínimo...rssss Muito obrigado, vou implementar e depois retorno com o resultado. Rogério
  20. Passei a tarde toda pesquisando, mas não encontrei algo que realmente dê uma luz para o meu caso.
  21. Ok, mas como vou conseguir ler o valor da eeprom no escravo antes de gravar em uma unica via de comunicação? Estou utilizando CCS e a PIC de onde quero ler e gravar é a 12F1840. Mas quando você tiver um tempinho gostaria de ver seu exemplo, eu aguardo...Obrigado. Ah, tenho que utilizar um fio só mesmo...
  22. Prezados estou precisando pra concluir meu projeto exemplos de comunicação entre PIC´s utilizando 1 fio, onde consigo ler e alterar valores gravados na EEprom de uma delas. Abraços. Rogério
  23. Existem no mercado "caixas" que são utilizadas para alterar ajustes de determinados equipamentos, como exemplo o Jetbox da Jetimodel que é utilizados para alterar parâmetros de seus equipamentos. Preciso desenvolver algo semelhante, onde quero utilizar o mesmo recurso para alterar valores gravados na eeprom de meu projeto.

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