Ir ao conteúdo
  • Cadastre-se

Robson Lopes

Membro Pleno
  • Posts

    22
  • Cadastrado em

  • Última visita

Reputação

0
  1. Ola amigo .. coloquei a transmissão em 1 segundo e nada, percebi que se eu tiro a tensão no pino de MCLR ele pisca certinho mas bem fraquinho ...
  2. codigo atualizado, fail, o led pisca uma tres vezes so, troquei o pic para 16f628a... volatile char recebe = 0;void main(){TRISB = 0x02;PORTB = 0x00;TXSTA = 0b00000100;RCSTA = 0b10010000;SPBRG = 25; while(1) { if (PIR1.RCIF == 1) { recebe = RCREG; Portb.rb5 = 1; if (recebe == 'b') { Portb.rb4 = 1; Delay_ms(300); Portb.rb4 = 0; Delay_ms(100); } PIR1.RCIF = 0; recebe = 0; SPBRG = 25; } }}
  3. Galera tudo bom? É o seguinte, estou com um pic16f877a e estou tentando comunicar com um arduino, no qual estou enviando um caractere 'b'(arduino transmissor), e o que esta acontecendo, o meu led portb.rb7 do pic receptor, indica que recebeu o valor do arduino, aee estou com duvida agora, o arduino esta envoando o caractere 'b' a cada 200 ms, então o led rb7 do pic era para ficar acendendo e apagando conforme o programa, pois esta em um loop infinito... porém o led apenas acende uma vez só, agora não sei se esta comunicando? ou se esta comunicando ou se esta travando em algum lugar que esqueci ... segue o codigo do pic. char recebe = 0; // variavel que recebera os dados da comunicacaovoid main(){ADCON1 = 0x0F;TRISB = 0x00;TRISC = 0x80; // RC7/RX - Input -- RC6/TX - OutputPORTB = 0x00;PORTC = 0x00;TXSTA = 0b00000100;RCSTA = 0b10010000;SPBRG = 25; // fator do baud rate para 9600 while(1) { if (PIR1.RCIF == 1) // verifico se a dados a receber { recebe = RCREG; // guardo o dado recebido na variavel recebe Portb.rb6 = 1; Delay_ms(100); Portb.rb6 = 0; Delay_ms(100); if (recebe == 'b') // se o dado recebido for o caractere 'b', acenda o led rb7 { Portb.rb7 = 1; Delay_ms(300); Portb.rb7 = 0; Delay_ms(100); SPBRG = 25; } delay_ms(200); } }}
  4. @rafael.luc Isso mesmo, sem usar nada do hardware do PIC gostaria de fazer a comunicação tudo por software, apenas curiosidade amigo, gosto de entender no bit, é possivel me ajudar? e gostaria de fazer em assembler para depois contar os ciclos de maquinas e ver quanto tempo demora realmente Obrigado.. Att, Robson Teles
  5. ola amigo @Felipe Electronic gostaria de fazer tudo na mão, por mais que consuma bastante memória quero aprender no bit é possivel me ajudar? Obrigado. Att, Robson Teles
  6. Ola Amigos Fostaria de fazer uma comunicação serial Pic + Pic na mão utilizando I/O + interrupção .... estou um pouco sem norte mais vamo lá.. Preciso de dois pinos I/O (Rx/Tx) Preciso da interrupção timer1 para o Baud Rate preciso de uma interrupção para iniciat a transmissão (no codigo do transmissor) e no receptor preceso de uma interrupção para quando receber um bit é isso? precisa de mais alguma coisa? Obrgado Att Robson Teles
  7. Amigos Preciso de mais uma ajuda de vocês... cara, sou leigão no assunto microcontrolador, e me desafiei fazer essa comunicação com conversor AD TLC1542, estou simulando no proteus segue o código que não esta funcionando: Resultados do Teste: O resultado que esta me mostrando do pino SDO do TLC 1542 é o numero de pulsos do clock no display esta visualizando o numero 45, mesmo sem ter os sinais da entrada. PIC16f628a, compilador Mikroc. sbit LCD_RS at RB0_bit;sbit LCD_EN at RB1_bit;sbit LCD_D4 at RB2_bit;sbit LCD_D5 at RB3_bit;sbit LCD_D6 at RB4_bit;sbit LCD_D7 at RB5_bit;sbit LCD_RS_Direction at TRISB0_bit;sbit LCD_EN_Direction at TRISB1_bit;sbit LCD_D4_Direction at TRISB2_bit;sbit LCD_D5_Direction at TRISB3_bit;sbit LCD_D6_Direction at TRISB4_bit;sbit LCD_D7_Direction at TRISB5_bit;#define dados PORTA.RA0#define clk PORTA.RA1#define cs PORTA.RA2#define eoc PORTA.RA3#define adress PORTA.RA4unsigned char valor[6];unsigned short i,x;unsigned int leitura[6];void main() {TRISB = 0x00;PORTB = 0x00;TRISA = 0x09;PORTA = 0x00;cs = 1;i = 0;lcd_init();lcd_cmd(_lcd_cursor_off);lcd_out(1,4,"TESTE");lcd_out(2,1,"Valor:");while (1){ cs = 0; clk = 0; // Clock para enviar o endereço ADRESS = AN0 delay_us(10); clk = 1; adress = 0; delay_us(10); clk = 0; delay_us(10); clk = 1; adress = 0; delay_us(10); clk = 0; delay_us(10); clk = 1; adress = 0; delay_us(10); clk = 0; delay_us(10); clk = 1; adress = 0; delay_us(10); clk = 0; delay_us(10); while (i <= 6) // Clock da conversão { clk = 1; delay_us(10); clk = 0; delay_us(7); i ++; leitura[i] = dados; } i = 0; if (eoc == 0) // Mostrar no display { delay_us(10); cs = 1; delay_us(10); IntToStr(leitura,valor); lcd_out(2,7,valor); } }}
  8. Ola amigos @vtrx Não funcionou aqui não amigo, fui testar e não deu certo .... @MOR Amigo ja li e re - li o datasheet nessas parte cara, tem ate um codigo na parte do timer1 (assembly) fiz do jeito que esta lá (em C) e nada, essa parte da interrupção que voce adicionou INTCON3 não tinha visto porém ainda não funcionou... tá tenso ..... mais alguma sugestão please? valeu mais uma vez pela ajuda pessoal
  9. Ola amigos @vtrx segue o link com os arquivos do proteus e com o código do mikroC: https://www.dropbox.com/sh/anw2ks43vg3hzcn/ZwGZnNQggY @aphawk Opa cara, tem alguma sugestão de microcontrolador mais avançado? cara eu curto todos os microcontrolador meu sonho e projetar com microprocessador mais ainda esta distante kkkkkkkkk @MOR Otimo video cara, microgenios é TOP, mas o que ele explicou foi sobre timer 0, e esse timer não trabalha com oscilador externo, apenas como counter (contador), recebe pulso externo, mais otima video aula se tiver mais gostaria de assistir vamos fazer rodar esse oscilador externo do timer 1, estou confiante com a ajuda de vocês...... Obrigado PESSOAL!!!!
  10. @vtrx Não funcionou cara, nussssss tá difícil hein
  11. @MOR Eaee Amigo Então amigo na minha placa tem esses capacitores, acabei esquecendo de por no esquema ... @vtrx Então amigo o estranho é que no datasheet fala que posso por um cristal 32768 hz, mais não consegui fazer funciona kkkk
  12. @aphawk Segue o esquema e os fuses do MikroC, quero que esse led pisque em 1 segundo com o oscilador externo timer1, e para mim ver essa precisão, que vou colocar o mesmo no projeto do meu cronometro Obrigado pessoal que esta me ajudando estou muito grato, espero chegar no nivel de vocês para mim poder ajudar a galera também valeu
  13. @vtrx Puxa amigo fiz tudo isso e nada amigo, alguma ooutra sugestão? Obrigado.
  14. Ola amigos @aphawk Cara eu li e re - li o datasheet amigo, mais não consegui fazer funciona cara, vocês ja chegaram a rodar com o clock do timer 1? quero fazer 1 segundo na interrupção com o clock 32768 para mim ver a precisão, apenas curiosidade
  15. Ola amigos obrigado pela ajuda Então, eu pretendo usar esse clock para gerar uma base de tempo de 1 segundo, então não queria que o clock do timer1 fosse o mesmo da CPU, quando configurado .... tomara que não seja, pois o meu clock do CPU e de 8 MHZ resumindo: PRESSUPONHO QUE O OSCILADOR TIMER1 (32 768 HZ) TRABALHE EM PARALELO AO CLOCK DA CPU (8 MHZ)... mas não consigo fazer a interrupção pelo oscilador externo do timer 1 o negocio fica travado e não conta nada estou fazendo um cronometro e por didatica quero fazer esse clock externo 32728 hz, para mim ver essa precisão.... mais meu amigo, não sei mais, o treco não vai de jeito nenhum.. cara já configurei tudo nesse T1CON, e OSCCON e os demais fuses do mikroc não roda, quando coloco clock INTERNO no T1CON.TMR1CS nussssssss vai lindo ... cara alguem ja fez essa experiencia, sera que eu não estou configurando certo meu mikroc? estou utilizando o pic18f4520a e sou iniciante, quero aprender a fazer esse clock externo

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