Página 1 de 1

ICD2BR + delay_ms = Problema!

MensagemEnviado: 14 Dez 2006 13:37
por baltazar
Amigos,

Acabei de adquirir um ICD2BR, instalei o MPLAB, o plug-in do CCS e importei um dos meus códigos.

Após alguns problemas de adaptação, consegui compilar o código sem problemas e então habilitei o ICD2Br como depurador, mandei gravar o .hex e executá-lo logo em seguida.

Tudo parece estar funcionando de maneira normal, agora sempre que passo por alguma chamada às rotinas de delay_ms() do CCS, o cursor salta para a linha "#use delay(clock=20000000)" e ali fica...

Imagino que ele deve demorar muito tempo mesmo pra aguardar uns 10ms, já que demora um certo tempo pra instruções simples, mas esperei quase 1 minuto e nada dele voltar!

Um detalhe interessante é que se eu for executando passo-a-passo e der um "step over" nessas rotinas, demora um tempinho e depois continua normalmente...

Isso é assim mesmo? Ou está faltando alguma configuração? Pq se for eu vou ter q comentar todos os delays do meu código para poder depurar com uma certa rapidez...

Estou programando um PIC18F4580, rodando a 20Mhz.

Desde já agradeço!

Abraços!

MensagemEnviado: 14 Dez 2006 14:26
por baltazar
Consegui fazer o negócio funcionar de uma forma meio precária aqui!

Quando ele desvia para a linha "#use delay(...)", se eu acionar algumas vezes o "Run" ele volta pro ponto logo após a chamada do delay_ms().

Porém, se eu entrar num loop pra escrever num LCD com um delay de 150ms entre cada caracter tenho q acionar o "run" umas 10 vezes por caracter! Mesmo colocando o breakpoint depois do loop...

De todo jeito, tá melhorando... :D

Abraço!

MensagemEnviado: 14 Dez 2006 15:54
por andre_luis
O único modo de depurar que tenho visto funcionar mais adequadamente, é via J-TAG, mas infelizmente a família PIC ainda nao possui isso.

MensagemEnviado: 15 Dez 2006 11:22
por J.lius
Algo parecedi com isso acontece quando se tem uma interrupção no meio do programa,,, o MpLab apresenta a pagina de include do pic que esta sendo usado,,, no começo achei que era um erro mais depois vi que a medida que o o programa e rodado a pagina de include vai para segundo plano.

No seu caso acho que se clicar no "Step Out" ele sai direto da rotina de delay e continua o programa.

MensagemEnviado: 15 Dez 2006 11:45
por baltazar
J.lius,

Tive esse problema com interrupções já, dei uma lida no manual e vi q não funcionava, daí as removi.

O ICD2Br não tem a opção de "step out", só "step over" o que, de certa forma, resolve o meu problema, mas sempre tenho q ficar apertando F6...

Acho meio cedo pra falar, mas fiquei meio decepcionado com o ICD2Br, esperava bem mais da ferramenta...

Tô revirando as opções aqui pra ver se não estou fazendo nada errado, mas até agora não consegui quase nada...

Por exemplo, eu não consigo manter o programa executando em tempo real(Run) dentro de um loop infinito! Escrevi uma rotina que fica aguardando um dado via serial para acender um led (coisa mobral mesmo), coloquei o breakpoint na linha que acende o led e mandei o programa rodar. O problema é q ele sempre pára no final do meu loop infinto, daí quando clico no Run ele dá mais uma "passada" e pára de novo...

Será que o equipamento é tão limitado assim?!
Ou eu que estou usando errado (mais provável!)??

Devia ter pesquisado melhor antes de comprar... :?

Abraço!

MensagemEnviado: 31 Dez 2006 02:27
por rebelk
o que é ICD2Br , e para que serve,