OK Ok...vou contar um segredo sobre interface JTAG !

Alguns de vcs já deve ter sofrido com isso. Escrevendo seu programa e debugando com a JTAG, refazendo os erros, debugando novamente...... etc.
Tudo lindo até que, definitivamente vc deixa seu programa rolar sem a JATG conectada, ai o programa fica doido.
Eu mesmo ja bostei esse problema aqui e ninguem soube dizer a resposta correta. E é muito comum isso acontecer tambem com PIC e o ICD2.
Nos foruns da NET no mundo todo sempre se acha questionamentos sobre esse comportamento estranho. É a famosa exclamação: Meu programa só funciona com a JTAG no modo debuger ou, meu PIC só funciona com o ICD2 conectado no modo debuger.
Por que isso acontece?
Isso esta diretamente relacionado com as temporizações internas dos processos do seu programa definidos quando vc estava testando o programa no modo debuger.
Exemplo: visualizando o funcionamento do seu programa atraves da Jtga no modo debuger, vc chegou a conclusão que aquele Delay, naquele ponto, deve ser de 15uS pra rotina ficar bem rapida e experta.
Acontece que, quando vc conecta o Jtag, os processos internos do modo Debuger diminuem a velocidade de execução do seu programa. Li que, dependendo da quantidade de variaveis que vc colocou na janela Watch, essa queda de velocidade da CPU pode chegar até 20%. Se vc tenta visualizar os dados de um Buffer grande na janela Memory, pior ainda. Essa queda de velocidade pode chegar facilmente a 30%.
Já senti isso na pratica tentando visualizar os TX_Buffer e RX_Buffer de 8K cada.
Então, aquele Delay critico que vc definiu como 15uS quando estava no modo debuger, na realidade ele será de 20 a 30% menor quando vc rodar o programa sem o debuger. E vai ser nessa hora que seu programa fará coisas esquisitas como escrever caracteres estranhos no display, não ler o SDcard corretamente, executar rotinas de modo estranho etc.
Bem, é isso.
Tudo lindo até que, definitivamente vc deixa seu programa rolar sem a JATG conectada, ai o programa fica doido.
Eu mesmo ja bostei esse problema aqui e ninguem soube dizer a resposta correta. E é muito comum isso acontecer tambem com PIC e o ICD2.
Nos foruns da NET no mundo todo sempre se acha questionamentos sobre esse comportamento estranho. É a famosa exclamação: Meu programa só funciona com a JTAG no modo debuger ou, meu PIC só funciona com o ICD2 conectado no modo debuger.
Por que isso acontece?
Isso esta diretamente relacionado com as temporizações internas dos processos do seu programa definidos quando vc estava testando o programa no modo debuger.
Exemplo: visualizando o funcionamento do seu programa atraves da Jtga no modo debuger, vc chegou a conclusão que aquele Delay, naquele ponto, deve ser de 15uS pra rotina ficar bem rapida e experta.
Acontece que, quando vc conecta o Jtag, os processos internos do modo Debuger diminuem a velocidade de execução do seu programa. Li que, dependendo da quantidade de variaveis que vc colocou na janela Watch, essa queda de velocidade da CPU pode chegar até 20%. Se vc tenta visualizar os dados de um Buffer grande na janela Memory, pior ainda. Essa queda de velocidade pode chegar facilmente a 30%.
Já senti isso na pratica tentando visualizar os TX_Buffer e RX_Buffer de 8K cada.
Então, aquele Delay critico que vc definiu como 15uS quando estava no modo debuger, na realidade ele será de 20 a 30% menor quando vc rodar o programa sem o debuger. E vai ser nessa hora que seu programa fará coisas esquisitas como escrever caracteres estranhos no display, não ler o SDcard corretamente, executar rotinas de modo estranho etc.
Bem, é isso.