Página 1 de 2
Problemas no PORT C

Enviado:
24 Jul 2007 17:08
por sandrini
Estou tendo dificuldades na configuração da PORTA C do atmega16. Faço a configuração de DDRC para entrada, ou seja, 0x00 e faço a leitura de um botão conectado à porta C, bit 2, conforme abaixo:
int main(void) {
DDRC = 0x00;
DDRB = 0x01;
for (;;) {
if (bit_is_clear(PINC,PC2) {
PORTB |= (1<<PB0);
}
}
}
O programa acima funciona muito bem no simulador mas quando passo para o microcontrolador, ele fica direto, ou seja, mesmo o pino 2 da porta C estando em 1, ele liga o LED na porta B. O microcontrolador não está configurando corretamente a porta C.
Estou colocando um resistor de pull up no PINC 2.
Alguém poderia me dar uma dica se isto está correto mesmo ou eu que estou fazendo algo errado?
O problema que isto está acontecendo somente nesta porta... quando utilizo outras portas, funciona tudo corretamente....

Enviado:
24 Jul 2007 19:46
por sandei
Na linha atmega qdo vem de fabrica alguns bit's do Portc estão programados para o JTAG vc deve desabilitar o suporte do JTAG, ai vai depender do programa que está utilizando para gravar e o gravador.
Fabio.

Enviado:
26 Jul 2007 08:58
por sandrini
Valeu Sandei....
O problema era esse mesmo....
Como todo bom brasileiro, depois de desabilitar o JTAG, resolvi verificar novamente o datasheet nesta parte do PORTC e está lá escrito que o JTAG estando habilitado, os pinos correspondentes a ele não funcionarão como I/O.
Agradeço mais uma vez...

Enviado:
26 Jul 2007 09:06
por sandei
OTIMO!
Fabio

Enviado:
05 Dez 2007 20:33
por rubenprom
Retornando ao assunto, eu nao entendi como desabilitar a função do JTAG no PORTC, eu uso o programador do CODEVISION, e tb uso o PONYPROG, como é que faz esta desabilitação, e se eu pretender usar no futuro o JATG, teria alguma dificultade no PORTC?
Ruben

Enviado:
05 Dez 2007 21:05
por sandei
Boa Noite.
Bom eu uso o Programa da Atmel p/ gravar, sendo assim possível Habilitar e Desabilitar a Qualquer momento. Isso no STK 500

Enviado:
05 Dez 2007 21:22
por rubenprom
Certo Sandei, vou baixar esse programa da ATmel, e fazer a programação, muito obrigado pela informação
Ruben

Enviado:
05 Dez 2007 21:28
por rubenprom
Esqueci, o fiz um gravador que usa a porta paralela, o Dongle, seriviria este gravador tb para poder desabilitar o JTAG?
Pelo que vi em varios software de gravação, há de setar o item JTAGEN=0??
é isso para poder desabilitar o JTAG?

Enviado:
05 Dez 2007 22:16
por Maurício
Salve, rubenprom.
Não. Para desativar o JTAG vc precisa marcar o bit como 1 (high). É ao contrário.
No CodeVision vc desmarca a caixa JTAGEN e manda gravar somente os fusíveis.
Desmarque tb a caixa OCDEN, pra evitar barulho.... ehehehehehehe
[]'s

Enviado:
05 Dez 2007 22:33
por rubenprom
Salve Mauricio, tudo beleza?
..Olha, para que talvez voces me entendam o que eu tou fazendo, no software está deste jeito


Enviado:
06 Dez 2007 00:23
por Maurício
É isso!
Do jeito que está, JTAG está desabilitado.
[]'s

Enviado:
06 Dez 2007 01:23
por Maurício
ah! Me lembrei de uma outra coisa.
Se vc usa programação automática depois da compilação, então vc precisa configurar os fuses através de: TOOLS > CHIP PROGRAMMER
Senão, o CodeVision usa a programação que está nestas configurações.
Do jeito que vc fez, só funciona se vc mandar gravar o chip imediatamente.
[]'s

Enviado:
06 Dez 2007 03:05
por rubenprom
Acho que fiz algo de errado! fiz a primeira gravação no modo automatico e agora deu isso
me parece ter perdido o mega.....buaaaaaaaa

Enviado:
06 Dez 2007 03:06
por rubenprom
mesmo assim valeu pela ajuda!

Enviado:
06 Dez 2007 13:30
por Maurício
Perdeu, nada! Essas máquinas parecem um trator!
Que gravador vc está usando?
Serial ou paralelo?
Vc configurou o gravador no Codevision? Menu: SETTINGS -> PROGRAMMER
O AVRStudio está rodando junto com o CodeVision? Se estiver vai dar erro de comunicação mesmo. Eles usam a mesma porta serial.
Vc programou o chip através de JTAG? Como estava a configuração dos fuses? Se eu não me engano, pelo AVRStudio dá pra programar os fuses que impedem gravação ISP. Se isso acontecer, babau! Só com gravador de alta-tensão.
Sua configuração de fusíveis está para cristal externo? É isso mesmo? Se for, coloca um cristal externo e tenta de novo.
[]'s