Ir ao conteúdo
  • Cadastre-se

BadMotherFuker

Membro Júnior
  • Posts

    12
  • Cadastrado em

  • Última visita

  1. @Isadora Ferraz Na vdd a etapa do piscaled já passei faz uns anos hauhauhau Esse compilador é uma versão mais nova do C18. e ao contrário dele esse não vem as bibliotecas basicas por algum motivo. Uma versão passada do XC8 vinha com essas bibliotecas. Mas enfim, vou pesquisar no site da microchip se essas bibliotecas estão disponíveis ou se devem ser baixadas separadamente. Obrigado pelo esclarecimento.
  2. @Isadora Ferraz Esse segundo print é quando eu clico no erro e ele mostra a linha que deu problema. Olha ai o print do erro mostrado. Esse arquivo makefile-default abre quando eu clico no link do erro.
  3. Oi gente!! Comecei a usar a IDE e o compilador XC8 essa semana, mas estou tendo uns problemas com as bibliotecas. Coloquei a de dealy porque é a primeira que eu deparei o problemas mas as outras como i2c, usart, timers etc também apresentam o mesmo erro. Já tentei reinstalar e atualizar tanto a IDE quanto o compilador mas sem sucesso. Tá ai as imagens dos erros. Alguém pode me ajudar?
  4. É, imaginei que eu teria que usar o timer mesmo. Queria só saber se tinha como usar e o pwm. Vi o datasheet e pelo visto não tem como usar ele nesse pino. Mas enfim, obrigado
  5. Olá gente. To precisando de ajuda num problema que me propuseram e estou com duvida na seguinte questão: O problema sugere que eu controle uma lampada por PWM com o PIC 18F4550 usando O C18. Beleza, isso eu sei como fazer usando as saídas PWM do PIC que até onde eu sei são os pinos RC1 e RB3. porém o Hardware já vem pronto e propõe que eu controle o PWM da lâmpada através do pino RE1 como segue no esquema abaixo : Então, eu queria saber se tem algum modo do PWM que usa esse pino ou alguma coisa assim que eu possa fazer o controle da lampada. Do mais, agradeço as futuras ajudas
  6. Eu dei uma olhada no manual e tem sim,tá tudo explicadinho em inglês mas da pra entender. Vi umas bibliotecas já prontas que aos meus olhos são mais fáceis de usar. Mas vou tenta entender como funciona melhor o lance de enviar dados e inicializar o LCD e tentar fazer uma. Se alguém tiver algo pra recomendar que me ajude a estudar isso ficaria grato. No mais obrigado gente
  7. Olá pessoal, eu gostaria de saber se a o copilador C18 da Microchip tem já tem uma biblioteca pronta pra LCD sem que eu precise criar uma ou baixar uma criada por outra pessoa qualquer. E se tiver, quais são os comandos dela e onde posso achar mais informação a respeito dela. Ajuda ae por favor !!!
  8. Obrigado pela ajuda pessoal, eu refiz o código como mostra abaixo com algumas modificações de saída e funcionou perfeitamente. Já faz um tempo já, só não deu tempo pra responder o Tópico kkk. #include <CD2D.h>#FUSES NOWDT //No Watch Dog Timer#FUSES INTRC //Internal RC Osc#FUSES NOPUT //No Power Up Timer#FUSES NOPROTECT //Code not protected from reading#FUSES NOBROWNOUT //No brownout reset#FUSES MCLR //Master Clear pin enabled#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O#FUSES NOCPD //No EE protection#define dig1 pin_a3#define dig2 pin_a2#define seg output_b#use delay(int=4000000)int cont,s1,s2,m1,m2;int1 sp,aux1,aux2,aux3;signed int segundos,minutos;char display[10]={192,249,164,176,153,146,130,248,128,144};/*------Inrettupição-----*/#int_RTCCvoid RTCC_isr(void) {cont++;}/*------Programa Principal-----*/void main(){ setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_ccp1(CCP_OFF); setup_comparator(NC_NC_NC_NC); enable_interrupts(INT_RTCC); enable_interrupts(GLOBAL); set_tris_a(0x0f); set_tris_b(0x00); //TODO: User Codecont=0;segundos=0;minutos=0;s1=0;s2=0;m1=0;m2=0;sp=0;aux1=0;aux2=0;aux3=0;while(true){ if(sp){ if(cont>250){ cont=0; segundos--; if(segundos<0){ segundos=59; minutos--; if(minutos<0){ minutos=0; segundos=0; sp=0; } } } } /*--------Ajuste dos MInutos----*/ if(input(pin_a6)){ aux2=1; } if(!input(pin_a6)&&aux2&&!sp){ aux2=0; minutos++; if(minutos>99){minutos=99;} } if(input(pin_a7)){ aux3=1; } if(!input(pin_a7)&&aux3 && !sp){ aux3=0; minutos--; if(minutos<0){minutos=0;} } /*---------Start/Pause---------*/ if(input(pin_a4)){ aux1=1; } if(!input(pin_a4)&&aux1){ aux1=0; sp=~sp; } /*------ Saida para os Displays ---------*/ s1=segundos/10;s2=segundos%10;m2=minutos/10;m1=minutos%10;/*----Display Segundos----*/output_a(0b0010);seg(display[s2]);delay_ms(1);output_a(0x00);output_a(0b0001);seg(display[s1]);delay_ms(1);output_a(0x00);/*----Display Minutos----*/output_a(0b0100);seg(display[m2]);delay_ms(1);output_a(0x00);output_a(0b1000);seg(display[m1]);delay_ms(1);output_a(0x00);}}
  9. Por que o que está abaixo da condição while(true) jamais vai rodar ? Eu troquei "signed in min,seg" e os alertas sumiram, mas o programa não conta quando eu aperto as chaves :/. O que pode está ocorrendo de errado ?
  10. OI gente, eu estou fazendo um timer baseado em um outro que eu vi com o PIC 16F628,como mostra o circuito a baixo : Primeiro eu escolho um número de 0 a 99 nos display dos minutos e coloco no play e ele vai contando de maneira decrescente até chegar a 0 e parar. Fiz o programa e com o CSS, como segue a baixo: #include <628a.h>#FUSES NOWDT //No Watch Dog Timer#FUSES INTRC //Internal RC Osc#FUSES NOPUT //No Power Up Timer#FUSES NOPROTECT //Code not protected from reading#FUSES NOBROWNOUT //No brownout reset#FUSES NOMCLR //Master Clear pin used for I/O#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O#FUSES NOCPD //No EE protection#use delay(int=4000000)// Variaveisint cont,min,seg;char m1,m2,s1,s2;int1 aux1,aux2,start; char segm[10]={63,6,91,79,102,109,125,7,127,111};//Interrupção timer 0 #int_RTCCvoid RTCC_isr(void) {cont=cont+1;}/*----------programa principal----------*/void main(){ setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_ccp1(CCP_OFF); setup_comparator(NC_NC_NC_NC); enable_interrupts(INT_RTCC); enable_interrupts(GLOBAL); seg=0; min=0; aux1=0; aux2=0; start=0; while(true){ if(cont==250){ cont=0; if(start){ seg--; if(seg<0){ seg=59; min--; if(min<0){ min=0; seg=0; start=0; } } } } /*----------Ajustar primeiro e segundo digito dos minutos------*/ if(input(pin_a7)){ aux1=1; } if(!input(pin_a6)&& aux1){ aux1=0; min++; if(min>59){min=0;} } if(input(pin_a6)){ // aux1=1; // } // if(!input(pin_a6)&& aux1){ // -- Reset -- aux1=0; // min=0; // } // /*---------------Start/Pause----------------*/ if(input(pin_a4)){ aux2=1; } if(!input(pin_a4)&& aux2){ aux2=0; start=~start; } /*---------------Digitos------------*/ m1=min/10; m2=min%10; s1=seg/10; s2=seg%10; /*-----------Display de 7 segmentos-----------*/ output_a(0b10000000); output_b(segm[s1]); delay_ms(1); output_a(0b01000000); output_b(segm[s2]); delay_ms(1); output_a(0b00100000); output_b(segm[m1]); delay_ms(1); output_a(0b00010000); output_b(segm[m2]); delay_ms(1); }} O problema é que quando eu compilo aparece os seguinte avisos dizendo que as variáveis que serão decrementadas nunca serão menor que 0 : Gostaria de pedir a ajuda e ver se o código que tá errado, se isso é normal e se estiver errado o que eu posso fazer pra corrigir.
  11. OI gente, estou fazendo um contador pra fazer um cronometro pra um projeto. Olha a imagem a baixo com a ideia do circuito .. Bem, meu objetivo é usar os oito pinos (B0 ~ B7) de uma porta ( B ) pra enviar dois valores diferentes pra cada decodificador BDC. Ou seja, eu quero enviar um número pros quatro primeiros pinos(B0 ~ B3) e outro pros quatro últimos pinos ( B4 ~ B7) pra mostrar nos displays,por exemplo,por exemplo, como um contador de 0 a 99 usando uma porta( B ). Minha dúvida é se tem como fazer isso da maneira mais simples que o código não fique muito grande. E se tiver, como eu faria isso ? Espero que eu tenha sido o mais claro possível e esporo que possam me ajudar.

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