Página 1 de 1

Voltimetro

MensagemEnviado: 31 Out 2009 21:26
por ddspereira
Olá estou tentando compilar codigo de um Voltimetro está dando o seguinte erro:

324 Undeclared identifier 'LCD_config' in expression
324 Undeclared identifier 'LCD_CURSOR_OFF' in expression
324 Undeclared identifier 'LCD_CLEAR' in expression

o PIC é 16F877A
Compilador MIKROC PRO
segue o codigo
--------------------------------------------------------------------------------------
unsigned long value;
unsigned char d1,d2,d3,d4,*text;

#define printV lcd_chr(2,11,d1+48); lcd_chr_cp(d2+48); \
lcd_chr_cp('.'); lcd_chr_cp(d3+48); \
lcd_chr_cp(d4+48); lcd_out_cp("V");

void main()
{
adcon1=0b10000010;
trisa=0xff;
LCD_config(&portb, 1,3,2,7,6,5,4);
LCD_cmd(LCD_CURSOR_OFF);
LCD_cmd(LCD_CLEAR);
text=("Diogo");
lcd_out(1,2,text);
text=("voltagem");
lcd_out(2,1,text);
for(;;)
{
value=adc_read(0);
value=value*5000/1023;
d1=value/1000,
d2=(value%1000)/100;
d3=((value%1000)%100)/10;
d4=((value%1000)%100)%10;
printV;
delay_ms(20);
}
}
--------------------------------------------------------------------------------------
obrigado!

Diogo Pereira

MensagemEnviado: 31 Out 2009 21:43
por _blackmore_
use o recurso Code no momento de edição da mensagem para evitar estas carinhas no firm ...

MensagemEnviado: 01 Nov 2009 03:04
por fabim
Se estiver usando mikroC PRO.
Do lado direito da tela, tem a aba "library mananger".
Clica sobre ela, seleciona LCD, e pimba.

Sim são 4:03, ja tomei 3 diazepam e não consigo apagar.

Abraços

Re: Voltimetro

MensagemEnviado: 01 Nov 2009 11:18
por ddspereira
ddspereira escreveu:Olá estou tentando compilar codigo de um Voltimetro está dando o seguinte erro:

324 Undeclared identifier 'LCD_config' in expression
324 Undeclared identifier 'LCD_CURSOR_OFF' in expression
324 Undeclared identifier 'LCD_CLEAR' in expression

o PIC é 16F877A
Compilador MIKROC PRO
segue o codigo
--------------------------------------------------------------------------------------

unsigned long value;
unsigned char d1,d2,d3,d4,*text;

#define printV lcd_chr(2,11,d1+48); lcd_chr_cp(d2+48); \
lcd_chr_cp('.'); lcd_chr_cp(d3+48); \
lcd_chr_cp(d4+48); lcd_out_cp("V");

void main()
{
adcon1=0b10000010;
trisa=0xff;
LCD_config(&portb, 1,3,2,7,6,5,4);
LCD_cmd(LCD_CURSOR_OFF);
LCD_cmd(LCD_CLEAR);
text=("Diogo");
lcd_out(1,2,text);
text=("voltagem");
lcd_out(2,1,text);
for(;;)
{
value=adc_read(0);
value=value*5000/1023;
d1=value/1000,
d2=(value%1000)/100;
d3=((value%1000)%100)/10;
d4=((value%1000)%100)%10;
printV;
delay_ms(20);
}
}
--------------------------------------------------------------------------------------
obrigado!

Diogo Pereira
[/code]
Código: Selecionar todos
Código: Selecionar todos

Re: Voltimetro

MensagemEnviado: 01 Nov 2009 11:19
por ddspereira
[quote="ddspereira"]Olá estou tentando compilar codigo de um Voltimetro está dando o seguinte erro:

324 Undeclared identifier 'LCD_config' in expression
324 Undeclared identifier 'LCD_CURSOR_OFF' in expression
324 Undeclared identifier 'LCD_CLEAR' in expression

o PIC é 16F877A
Compilador MIKROC PRO
segue o codigo
--------------------------------------------------------------------------------------
Código: Selecionar todos
unsigned long value;
unsigned char d1,d2,d3,d4,*text;

#define printV lcd_chr(2,11,d1+48);             lcd_chr_cp(d2+48); \
               lcd_chr_cp('.');                 lcd_chr_cp(d3+48); \
               lcd_chr_cp(d4+48);               lcd_out_cp("V");

void main()
{
adcon1=0b10000010;
trisa=0xff;
LCD_config(&portb, 1,3,2,7,6,5,4);
LCD_cmd(LCD_CURSOR_OFF);
LCD_cmd(LCD_CLEAR);
text=("Diogo");
lcd_out(1,2,text);
text=("voltagem");
lcd_out(2,1,text);
for(;;)
{
value=adc_read(0);
value=value*5000/1023;
d1=value/1000,
d2=(value%1000)/100;
d3=((value%1000)%100)/10;
d4=((value%1000)%100)%10;
printV;
delay_ms(20);
}
}
--------------------------------------------------------------------------------------
obrigado!

Diogo Pereira[/quote]
[/code]

MensagemEnviado: 01 Nov 2009 11:22
por ddspereira
fabin não consegui,
quando vou criar um novo projeto no final estou incluindo toas as bibliotecas (defult) conforme diz no programa, tem alguns exemplos no HELP quando vou compilar dá o mesmo erro, o que pode ser??

MensagemEnviado: 01 Nov 2009 14:35
por fabim
tio, seguinte,. Estes comandos aí são do mikroC PRO pra baixo, para o pro V0 >, tem que definir os flag´s dos bits de controle etc.
Da uma zoiada no herpe, e tu vai achar a cagada.

Certeza absoluta.

Fabim

MensagemEnviado: 01 Nov 2009 14:56
por ddspereira
Descobri o problema,
codigo corrigido
Código: Selecionar todos
// Lcd pinout settings
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;

// Pin direction
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;
//fim

Lcd_Init();
unsigned long value;
unsigned char d1,d2,d3,d4,*text;

#define printV lcd_chr(2,11,d1+48);             lcd_chr_cp(d2+48); \
               lcd_chr_cp('.');                 lcd_chr_cp(d3+48); \
               lcd_chr_cp(d4+48);               lcd_out_cp("V");

void main()
{
adcon1=0b10000010;
trisa=0xff;
Lcd_Init();
LCD_cmd(_LCD_CURSOR_OFF);
LCD_cmd(_LCD_CLEAR);
text=("Diogo");
lcd_out(1,2,text);
text=("voltagem");
lcd_out(2,1,text);
for(;;)
{
value=adc_read(0);
value=value*5000/1023;
d1=value/1000,
d2=(value%1000)/100;
d3=((value%1000)%100)/10;
d4=((value%1000)%100)%10;
printV;
delay_ms(20);
}
}

Fabim outro erro que estava cometendo é o seguinte
no PIC16F887 usa ANSEL E ANSELH
e no PIC16F877A como ficaria??

Obrigado Pela ajuda!!!

MensagemEnviado: 05 Nov 2009 23:04
por ddspereira
Fabin, Montei o circuito do voltimetro no protoboard para teste
a rotina funcionou beleza, só que as duas ultimas casas ficam variando demais, vc acha que esse problema pode estar no Hardware ou software??

MensagemEnviado: 06 Nov 2009 07:20
por fabim
tem quantos digitos ?
Cerveja bem, Campari as coisas, wisk dias atras me fizeram a mesma prigunta.
DoiDo Só Pereira.
Uma coisa que diferencia um designer de um outro técnico é a visão espacial.
Esta visão, não é apenas focar o circuito e finality.
É olhar de longe o sistema como um todo.

Por exemplo, com certeza tu esta usando o Vref interno né ?
Vref interno é o mesmo V que alimenta o pic que pode haver algum riple de algumas dezenas de mV. Isso ja é problematico.
Sendo assim, abilite o Vref externo. Este Vref externo vai ser alimentado pelo proprio VDD do pic, mais diferenciando-se que vai ter um diodim de sinal, e um capacitorzim tipo 1uF, que vai garantir que o riple vai lá pra casa do chinelo."tem outras formas, mais não vem ao caso estou apenas lhe explicando".
Veja que agora o Vref não é mais 5V, que na verdade não tem como saber se realmente é 5V, pois o regulador pode variar algumas centenas de mV... Mas vamos supor que seja os ditos 5V, menos a tensão do diodo de 0.5V+/-. agora os seus calculos vão ser encima de 4.5V, ou seja 4.5V.

Pronto, uma etapa para isolar parte do problema.
Fez os testes e parou de variar, blz o problema tava aí.

Não melhorou, o problema persiste.
Agora é o problema de impedancia da via de VDD a ser medida.
Colocar um buffer, não melhorou ?

Agora é fazer média.
tira 5 amostras, somando as 5 em tempo X, depois pega esta amostra e divide por 5, depois amostra no display.
Resolveu ? sim.
Intão o problema é no V que o pic esta medindo, esse maledito esta com variação problematica, ruidos etc.

E la vai indo.

PÓCÓTO PÓCÓTÓ PÓCÓTÓ....

Sempre que pegar outro ADC com problema semelhante, isole os possiveis paus, da forma que eu mostrei.

Abraços por tráz!! { :lol: }

MensagemEnviado: 06 Nov 2009 11:39
por Djalma Toledo Rodrigues
fabim escreveu: ... Agora é fazer média.
tira 5 amostras, somando as 5 em tempo X, depois pega esta amostra e divide por 5, depois amostra no display.
Resolveu ? sim.

Isso Fabim "Visão espacial" (sei-lá o que isso siguinifica. rs)

Agora ajuda o Compilador e o uC , bota multiplo de 2 --> 2¹ 2² 2³
Soma duas divide por dois
Soma quatro divide por quatro
Soma oito divide por oito ...
.

MensagemEnviado: 06 Nov 2009 11:45
por Djalma Toledo Rodrigues
fabim escreveu: Uma coisa que diferencia um designer de um outro técnico é a visão espacial.
Agora é fazer média.
tira 5 amostras, somando as 5 em tempo X, depois pega esta amostra e divide por 5, depois amostra no display.
Resolveu ? sim.

Isso Fabim "Visão espacial" (sei-lá o que isso significa. rs)

Agora ajuda o Compilador e o uC , bota multiplo de 2 --> 2¹ 2² 2³
Soma duas divide por dois
Soma quatro divide por quatro
Soma oito divide por oito ...
.

MensagemEnviado: 06 Nov 2009 13:15
por Djalma Toledo Rodrigues
Djalma Toledo Rodrigues escreveu:
fabim escreveu: Uma coisa que diferencia um designer de um outro técnico é a visão espacial.
Agora é fazer média.
tira 5 amostras, somando as 5 em tempo X, depois pega esta amostra e divide por 5, depois amostra no display.
Resolveu ? sim.

Isso Fabim "Visão espacial" (nem sei bem o que isso significa. rs)

Agora ajuda o Compilador e o uC , bota multiplo de 2 --> 2¹ 2² 2³
Soma duas divide por dois
Soma quatro divide por quatro
Soma oito divide por oito ...
.

MensagemEnviado: 06 Nov 2009 13:20
por fabim
Bom por exemplo você não a tem.
Ao invés de ter um foco, fechado e curto, tentando projetar ou resolver um problema ponto a ponto.
Você se afasta e enxerga um espaço maior, conseguindo interligar todo o sistema e acompanhar o processo.


blablablabla... á seu despaçado e focado se ja intendinho..rsrsrs
Não conheço outra terminologia pra isto.

O cara ta com a saida de um amplificador queimado.
"saida", troca transistor, e nada, mexe na fonte e nada, troca proteção e nada, aí ele vai testar o falante. e nada.
Mais a visão dele esta tão focado na "saida", que ele esqueceu que existe um conjunto, para que a saida possa funcionar.rs

Me expressinhei mais mió ?

Abraços DJ!!