Ir ao conteúdo
  • Cadastre-se

Problemas com montagem


cezar.opaleiro

Posts recomendados

Boa tarde amigo Cezar,

Através da foto, notei que as letras estão aparecendo no display (posso estar errado), desta forma, acredito que o seu problema agora seja o contraste da matriz do display. Experimente conectar o pino do meio de um potenciômetro de 10K (ou próximo) no pino 3 (Vee) do display, e os extremos do potenciometro no Vss (terra) e Vcc (5V) respectivamente. Após conectar a saída do potenciômetro no pino 3 do display, rotacione o potenciômetro até que a letra apareça.

Procedimento:

Tire a alimentação o circuito. (Desconecte a USB)

Conecte uma extremidade do potenciômetro no Vcc e outra no Vss, em seguida conecte o centro do potenciômetro no pino três do display.

Lige a alimentação. (Conecte a USB)

Rotacione o potenciômetro até que as letras apareçam, ou não, no caso de não ser este o problema heheheheh.

Espero ter ajudado,

Link para o comentário
Compartilhar em outros sites

Boa tarde amigo Cezar,

Através da foto, notei que as letras estão aparecendo no display (posso estar errado), desta forma, acredito que o seu problema agora seja o contraste da matriz do display. Experimente conectar o pino do meio de um potenciômetro de 10K (ou próximo) no pino 3 (Vee) do display, e os extremos do potenciometro no Vss (terra) e Vcc (5V) respectivamente. Após conectar a saída do potenciômetro no pino 3 do display, rotacione o potenciômetro até que a letra apareça.

Procedimento:

Tire a alimentação o circuito. (Desconecte a USB)

Conecte uma extremidade do potenciômetro no Vcc e outra no Vss, em seguida conecte o centro do potenciômetro no pino três do display.

Lige a alimentação. (Conecte a USB)

Rotacione o potenciômetro até que as letras apareçam, ou não, no caso de não ser este o problema heheheheh.

Espero ter ajudado,

Olá amigo ProjectPIC!

Vale pela dica mas...não deu...usei um trimpot de 5k tirei alterei o contraste do min até o máx e não apareceu nada... :o

Vou deixa o código parcial para quem puder me ajudar, caso o problema for em software...



void Conta_Giros(){

if(counter > 244){
voltas = pulso/(cilindros/2)*120; //calculo do AUX1 (taxa de atualização 500ms)
pulso = 0; //zera o pulso e counter para um novo ciclo
counter = 0;
}

IntToStr(voltas,AUX1); //converte de INT para STR



if(voltas >= 1500){
PORTA.f1 = 1;
}

else{
PORTA.f1 = 0;
}

if(voltas >= 5000){
PORTB.f2 = 1;
}

else{
PORTB.f2 = 0;
}

converte = ADC_Read(0);
converte2 = converte*0.098;
temp2 = converte2;

if(converte2 > 99){
c1 = temp2 / 100;
temp2 -= c1 * 100;
AUX2[0] = c1+48;
}

else{
AUX2[0]= ' ';
}

if(converte2 > 9){
c2 = temp2 / 10;
temp2 -= c2 * 10;
AUX2[1] = c2+48;
}

else{
AUX2[1]= ' ';
}

c3 = temp2;
AUX2[2] = c3+48;
EEPROM_Write(0x09,AUX2[0]);
EEPROM_Write(0x10,AUX2[1]);
EEPROM_Write(0x11,AUX2[2]);


Lcd_out(1,1,"Rotac");
CharATIL(1,6);
Lcd_out(1,7,"o");
Lcd_out(1,8,AUX1);
Lcd_out(1,14,"RPM");
Lcd_out(2,1,"Acelerac");
CharATIL(2,9);
Lcd_out(2,10,"o");
Lcd_out(2,13,AUX2);
Lcd_out(2,16,"%");

}

void main() {

OPTION_REG = 0b10000010; // Atribui Prescaler de 1:8 ao TMR0.
TMR0 = 12; // Valor Inicial de TMR0 (256 - 12 = 244).
INTCON = 0b10100000; // Habilita Interrupção do TMR0, e seta os
// registros GIE e T0IE.

CMCON = 0x07; // comunicação digital
//ANSEL = 1;
TRISA = 0b10111000; //[0-7] portas como entradas ou saídas 0 saída 1 entrada
TRISB = 0b11010000;

Lcd_Init(); //inicializa display
delay_ms(100);
PORTB.f0 = 1;
PORTB.f3 = 1;
PORTA.f1 = 0; //apagar leds
PORTB.f2 = 0; //apagar leds

Lcd_Cmd(_LCD_CURSOR_OFF); //desabilita cursor
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
opcao = 1;

while(1){

if(PORTB.f3 == 0){
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
Cil();
PORTB.f3 = 1;
}

if(PORTB.f0 == 0){
opcao++;

if(opcao > 4){
opcao = 1; //volta ao menu inicial
}
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
delay_ms(200);
PORTB.f0 = 1;
}

switch (opcao){

case 1:
Conta_Giros();
break;

case 2:
Tensao_Bateria();
break;


case 3:
Combustivel();
break;


case 4:
Temperatura();
break;

}

}
}

Quem puder me ajudar neste problema sinistro, eu sou muito grato!

Abrs!

Link para o comentário
Compartilhar em outros sites

Oi amigo Cezar,

É uma pena que não era o que eu estava pensando.

Acho melhor você analisar o projeto por partes.

Comece com um código bem simples que apenas escreve algo no display. Assim, você poderá analisar se o código de inicialização e escrita no display estão funcionando adequadamente.

Em seguida, vá isolando os códigos e vá testando os trechos. Tenho quase certeza de que você encontrará o problema.

Link para o comentário
Compartilhar em outros sites

Oi amigo Cezar,

É uma pena que não era o que eu estava pensando.

Acho melhor você analisar o projeto por partes.

Comece com um código bem simples que apenas escreve algo no display. Assim, você poderá analisar se o código de inicialização e escrita no display estão funcionando adequadamente.

Em seguida, vá isolando os códigos e vá testando os trechos. Tenho quase certeza de que você encontrará o problema.

Valeu amigo ProjetPIC!

Vou fazer um programinha bem pequeno.

Mas alguém pode me dizer se há algo de errado?? Eu fiz um programa uma vez que escreve no LCD dessa mesma forma e escreveu...o que me deixa na dúvida é funcionar corretamente no ISIS...

Abrs!

Link para o comentário
Compartilhar em outros sites

Ae galera!

Fiz outro programa vejam:


// Lcd pinout settings
sbit LCD_RS at RA7_bit;
sbit LCD_EN at RA6_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISA7_bit;
sbit LCD_EN_Direction at TRISA6_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;


void main() {

TRISB = 0;
PORTB = 0xFF;
TRISB = 0xff;
ANSEL = 0;

Lcd_Init(); //inicializa display
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
Lcd_Cmd(_LCD_CURSOR_OFF); //desabilita cursor

while(1){
delay_ms(800);
Lcd_out(1,6,"Teste");
delay_ms(800);
Lcd_out(2,4,"Display LCD");
delay_ms(800);
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
}
}

A única coisa que ele faz é ficar escrevendo "Teste" e depois "Display LCD". Mesmo assim não mostra nada...q lokura viu...na minha opinião não é software o problema.

Abrs!

Link para o comentário
Compartilhar em outros sites

Oi Cezar,

Não estou vendo nenhum oscilador no seu circuito, nem os fusíveis. Deve ser por isso que não está funcionando.

Ou você está usando oscilador interno? Se estiver usando um Interno, deve ter certeza que os pinos Ra7 e RA6 estão operando como I/O digital, uma vez que eles estão multiplexados com a entrada e saída do oscilador.

Faço o seguinte teste.

Desconecte os pinos RA7 e RA6 do display, e faça uma rotina para ligar e desligar um led em um tempo de 1 segundo, assim você poderá verificar que os pinos estão se comportando como saída digital.

A ta faltando um TRISA = 0x3D;

Se eu fosse você trocaria o RA1 pelo Ra4 ai ficaria TRISA = 0x2F

Link para o comentário
Compartilhar em outros sites

Oi Cezar,

Não estou vendo nenhum oscilador no seu circuito, nem os fusíveis. Deve ser por isso que não está funcionando.

Ou você está usando oscilador interno? Se estiver usando um Interno, deve ter certeza que os pinos Ra7 e RA6 estão operando como I/O digital, uma vez que eles estão multiplexados com a entrada e saída do oscilador.

Faço o seguinte teste.

Desconecte os pinos RA7 e RA6 do display, e faça uma rotina para ligar e desligar um led em um tempo de 1 segundo, assim você poderá verificar que os pinos estão se comportando como saída digital.

A ta faltando um TRISA = 0x3D;

Se eu fosse você trocaria o RA1 pelo Ra4 ai ficaria TRISA = 0x2F

Olá amigão! Obrigado pela ajuda!

Fiz o seguinte programa para fazer o teste que você me pediu:

Ele faz piscar 2 LED, 1 ligado no RA7 outro no RA6.


// Lcd pinout settings
sbit LCD_RS at RA7_bit;
sbit LCD_EN at RA6_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISA7_bit;
sbit LCD_EN_Direction at TRISA6_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;


void main() {

TRISB = 0;
PORTB = 0xFF;
TRISB = 0xff;
TRISA = 0x3D;
ANSEL = 0;

Lcd_Init(); //inicializa display
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
Lcd_Cmd(_LCD_CURSOR_OFF); //desabilita cursor

while(1){
delay_ms(1000);

PORTA.f7 = 1;
PORTA.f6 = 1;

delay_ms(1000);

PORTA.f7 = 0;
PORTA.f6 = 0;

delay_ms(1000);

}
}


O que aconteceu:

Só piscou o LED ligado no RA6, o ligado no RA7 não deu nem sinal de vida hehe

E o LED RA6 sempre pisca 10x depois pára.

O que isso significa???

Valeu pela ajuda!

Abrs!

Link para o comentário
Compartilhar em outros sites

Oi amigo,

O seu TRISB também está errado, ele deve ter o valor 0x09

0x09 = 0b00001001

RB7 - RB4 - Saída

RB3 - Entrada

RB2 - RB1 - Saída

RB0 - Entrada

Para testar a rotina para acender o led o registro INTCON = 0x00, se funcionar tudo redondo então você terá que modificar para INTCON = 0xE0, o qual irá ativar a interrupção de TIMER 0. (Obs: colocar a rotina após a inicialização do display)

O oscilador deve estar configura como INTIO2 (Internal Oscillator with I/O on RA6

and RA7) não trabalho com este compilador, então veja qual é a constante que configura o dispositivo para este tipo de oscilador.

Certifique-se de que o WDT esteja desabilitado e o modo de debugação também esteja desabilitado.

Se tiver muita dúvida acho melhor ver o datasheet. http://ww1.microchip.com/downloads/en/devicedoc/30487c.pdf

Testa ai, depois posta de novo :lol:

Link para o comentário
Compartilhar em outros sites

Oi amigo,

O seu TRISB também está errado, ele deve ter o valor 0x09

0x09 = 0b00001001

RB7 - RB4 - Saída

RB3 - Entrada

RB2 - RB1 - Saída

RB0 - Entrada

Para testar a rotina para acender o led o registro INTCON = 0x00, se funcionar tudo redondo então você terá que modificar para INTCON = 0xE0, o qual irá ativar a interrupção de TIMER 0. (Obs: colocar a rotina após a inicialização do display)

O oscilador deve estar configura como INTIO2 (Internal Oscillator with I/O on RA6

and RA7) não trabalho com este compilador, então veja qual é a constante que configura o dispositivo para este tipo de oscilador.

Certifique-se de que o WDT esteja desabilitado e o modo de debugação também esteja desabilitado.

Se tiver muita dúvida acho melhor ver o datasheet. http://ww1.microchip.com/downloads/en/devicedoc/30487c.pdf

Testa ai, depois posta de novo :lol:

Amigão!

Modifiquei o código como me propos, veja:


// Lcd pinout settings
sbit LCD_RS at RA7_bit;
sbit LCD_EN at RA6_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISA7_bit;
sbit LCD_EN_Direction at TRISA6_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;


void main() {

TRISB = 0;
PORTB = 0xFF;
TRISB = 0x09;
TRISA = 0x3D;
ANSEL = 0;
INTCON = 0x00;

Lcd_Init(); //inicializa display
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
Lcd_Cmd(_LCD_CURSOR_OFF); //desabilita cursor

while(1){
delay_ms(1000);

PORTA.f7 = 1;
PORTA.f6 = 1;

delay_ms(1000);

PORTA.f7 = 0;
PORTA.f6 = 0;

delay_ms(1000);

}
}

Aqui está os parametros de configuração:

configmikroc.jpg

O que aconteceu:

A mesma coisa...só piscou o LED ligado ao RA6, RA7 sempre apagado.

Porque será que o RA7 num funciona...??? Ele é ligado no RS do display...sem ele realmente não se comunicam...

Abrs!

Link para o comentário
Compartilhar em outros sites

Hum, não tem esta opção.

Bom, acabei de ver o Datasheet novamente, e verifiquei que o pino Ra7 só opera como entrada. então você terá que substituir por outro pino.

Modifica o pino e já pode testar o display, pois acho que agora funga. heheeh

Oi Dani, obrigado por se juntar a nós. heuheiehiue

Link para o comentário
Compartilhar em outros sites

Epa epa! Como assim só como entrada??????

Ele é o clockin, ok. Mas configurando os fuses ele pode ser usado como saída também!!

Alias eu já fiz um projeto usando ele como saída. Eu usei essa opção do mikroc: INTOSC: I/O on RA6/OSC2/CLKOUT, I/O on RA7/OSC1/CLKIN

Observe a parte destacada em vermelho..

EDIT:

Retirado do datasheet...

ra7.jpg

Link para o comentário
Compartilhar em outros sites

Epa epa! Como assim só como entrada??????

Ele é o clockin, ok. Mas configurando os fuses ele pode ser usado como saída também!!

Alias eu já fiz um projeto usando ele como saída. Eu usei essa opção do mikroc: INTOSC: I/O on RA6/OSC2/CLKOUT, I/O on RA7/OSC1/CLKIN

Observe a parte destacada em vermelho..

EDIT:

Retirado do datasheet...

ra7.jpg

Olá Dani!

O MikroC é o 2.5

Mas e ae...qual das opções da foto eu deixo???

valeu amigoos!!

Abrs!

Link para o comentário
Compartilhar em outros sites

Ah, o meu é o 2.15...

Bom, está certo como você configurou..

Vamos ver..

Troque TRISA = 0x3D; por TRISA = 0; e vê se funciona.

Tô testando agora cada alteração.

Fiz as alterações e mudei o RS de RA7 pra RA4 e nada...só pisca o primeiro quadradin e apaga e fica sem nada na tela do display...:(


// Lcd pinout settings
sbit LCD_RS at RA4_bit;
sbit LCD_EN at RA6_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISA4_bit;
sbit LCD_EN_Direction at TRISA6_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;


void main() {


PORTB = 0xFF;
TRISB = 0x00;
TRISA = 0x00;
ANSEL = 0;
INTCON = 0x00;

Lcd_Init(); //inicializa display
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
Lcd_Cmd(_LCD_CURSOR_OFF); //desabilita cursor

while(1){
delay_ms(1000);

Lcd_out(1,3,"TESTE LCD");

delay_ms(1000);

Lcd_out(2,5,"CEZAR");

delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);//' limpa o display

}
}

Abrs!

Link para o comentário
Compartilhar em outros sites

Cara, vou testar aqui viu.

Já edito aqui com notícias....

EDIT:

Cara tenta assim, aqui funcionou:

Observe que mudei a pinagem do RS e Enable.


sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;


void main()
{
TRISB = 0x00;
TRISA = 0x00;
INTCON = 0x00;

Lcd_Init(); //inicializa display
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
Lcd_Cmd(_LCD_CURSOR_OFF); //desabilita cursor

while(1)
{
delay_ms(1000);

Lcd_out(1,3,"TESTE LCD");

delay_ms(1000);

Lcd_out(2,5,"CEZAR");

delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
}
}

Link para o comentário
Compartilhar em outros sites

Cara, vou testar aqui viu.

Já edito aqui com notícias....

EDIT:

Cara tenta assim, aqui funcionou:

Observe que mudei a pinagem do RS e Enable.


sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;


void main()
{
TRISB = 0x00;
TRISA = 0x00;
INTCON = 0x00;

Lcd_Init(); //inicializa display
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
Lcd_Cmd(_LCD_CURSOR_OFF); //desabilita cursor

while(1)
{
delay_ms(1000);

Lcd_out(1,3,"TESTE LCD");

delay_ms(1000);

Lcd_out(2,5,"CEZAR");

delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
}
}

Brother, acredite...não deu. :(

Coloquei o código igualzin que você postou e nada.

Então fiz o seguinte código de piscar LED pra teste.


sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;


void main()
{
TRISB = 0x00;
TRISA = 0x00;
INTCON = 0x00;

Lcd_Init(); //inicializa display
Lcd_Cmd(_LCD_CLEAR);//' limpa o display
Lcd_Cmd(_LCD_CURSOR_OFF); //desabilita cursor

while(1)
{
delay_ms(1000);
PORTB.f2 = 1;
PORTB.f3 = 1;


delay_ms(1000);
PORTB.f2 = 0;
PORTB.f3 = 0;


delay_ms(1000);

}
}

Só pisca o LED no RB3 no RB2 não. O que sempre acontece é que o que direciona para o RS não ta funcionando... O circuito é o PIC16F88 I/P.

Poxa que coisa pensei que agora ia...:(

Abrs!

Link para o comentário
Compartilhar em outros sites

Ae pessoal!

A coisa tá preta...

Me parece que o problema esta no RS. Estas linhas de código:


sbit LCD_RS at RB2_bit;

e


sbit LCD_RS_Direction at TRISB2_bit;

Correspondem a ligação do pino do PIC ao pino de LCD, o estranho é que eu tiro o fio que vai do EN por exemplo e ligo num LED o LED pisca agora quando eu tiro o fio que vai no RS não pisca e se o RS não funcionar o LCD não funciona. Isso pra qualquer porta que eu coloco no RS RB0-7 RA0-7. Alguém sabe me dizer o porque disso???

Tem alguma configuração ou algo que esteja faltando???

Se alguém pudesse me mandar um cód. já em .hex falando as ligações usadas em PICxLCD pra mim testar pra ver se o problema é compilador ou sei lá o que...rs me ajudaria d+! O PIC que tô usando é o PIC16F88 I/P.

Abrs!

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Olá pessoal!

Até hoje não consegui resolver meu problema...

Andei conversando com um amigo meu que trabalha com PIC e ele revirou meu projeto e acabou achando uma coisa de anormal. É na geração do código assembly, os arquivos .asm que o MikroC está gerando não tem o cabeçalho onde fica as informações sobre OSC, WDT, código protegido e por ae vai...vejam uma parte:

Arquivo gerado no meu MikroC:



_interrupt:
MOVWF R15+0
SWAPF STATUS+0, 0
CLRF STATUS+0
MOVWF ___saveSTATUS+0
MOVF PCLATH+0, 0
MOVWF ___savePCLATH+0
CLRF PCLATH+0
;88LCD.c,21 :: void interrupt(){
;88LCD.c,22 :: counter++; // Incrementa valor de cnt a cada Interrupção.
INCF _counter+0, 1
BTFSC STATUS+0, 2
INCF _counter+1, 1
;88LCD.c,23 :: if(PORTB.f1 == 0){
BTFSC PORTB+0, 1
GOTO L_interrupt0
;88LCD.c,24 :: set = 0;
CLRF _set+0
CLRF _set+1
;88LCD.c,25 :: }
L_interrupt0:
;88LCD.c,26 :: if(PORTB.f1 == 0 && counter <= 256 && set == 0){
BTFSC PORTB+0, 1
GOTO L_interrupt3
MOVF _counter+1, 0
SUBLW 1
BTFSS STATUS+0, 2
GOTO L__interrupt61
MOVF _counter+0, 0
SUBLW 0
L__interrupt61:
BTFSS STATUS+0, 0
GOTO L_interrupt3
MOVLW 0
XORWF _set+1, 0
BTFSS STATUS+0, 2
GOTO L__interrupt62
MOVLW 0
XORWF _set+0, 0
L__interrupt62:
BTFSS STATUS+0, 2
GOTO L_interrupt3
L__interrupt59:
;88LCD.c,27 :: pulso++;
INCF _pulso+0, 1
BTFSC STATUS+0, 2
INCF _pulso+1, 1
;88LCD.c,28 :: set = 1;
MOVLW 1
MOVWF _set+0
MOVLW 0
MOVWF _set+1
;88LCD.c,29 :: }
L_interrupt3:
;88LCD.c,31 :: TMR0 = 12; // Valor Inicial de TMR0 (256 - 12 = 244).
MOVLW 12
MOVWF TMR0+0
;88LCD.c,32 :: INTCON = 0b00100000; // Seta T0IE (bit 5) e Limpa T0IF (bit 2).

Agora ele me mostrou um exemplo de código que funciona e o inicio é assim:


;*******************************************************************
;
; CPU configuration
;

#ifdef F84
MESSG "Processor = 16F84"
#define RAMStart 0x0C ; by VK3BHR
processor 16f84
include <p16f84.inc>
__config _HS_OSC & _PWRTE_ON & _WDT_OFF
#endif

os meus arquivos .asm não possuem esse cabeçalho, segundo ele isso influencia, agora gostaria da ajuda de alguem pra saber se o meu MikroC esta desconfigurado...ou como montar esse cabeçalho, o que posso fazer??

Poxa galera preciso desse projeto funcionando para a segunda semana de novembro...to preocupado!

Help!

Abrs!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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