Ir para conteúdo
  • Cadastre-se

resolvido Como usar o PB7 e PB6 como io no atmega8 no arduino com clock interno

Avalie este tópico:


mariomendes77

Posts em destaque

Pode manipular diretamente o acesso aos registradores dos Ports.

 

Porém seu Arduino não poderá mais ser gravado ou acessado, talvez, somente com um programador como o USBASP ou o HVSP, por exemplo.

 

O acesso se dá utilizando, por exemplo o DDRD para setar como entrada ou saída no port D. Para a alteração estado do pino com PORTD.

 

DDRD = B11110000; // 1 Saida, 0 Entrada

PORTD = B11110000; // 1 High, 0 Low

 

No Arduino os includes de manipulação de ports não vem com esses dois habilitados, porém há alguns usuários que fizeram um novo arquivo, que o senhor pode baixar e utilizar.

 

Não sei ao certo se era isso mesmo que o senhor queria.

 

Flw...

Editado: por nagkiller
  • Joinha 2
Link para o comentário
Compartilhar em outros sites

Me parece que o senhor precisa de algo como isso aqui:

 

Você não tem permissão para ver links. Faça login ou cadastre-se.

 

 

Flw...

Editado: por nagkiller
  • Joinha 1
Link para o comentário
Compartilhar em outros sites

2 horas atrás, nagkiller disse:

Me parece que o senhor precisa de algo como isso aqui:

 

Você não tem permissão para ver links. Faça login ou cadastre-se.

 

 

Flw...

caro @nagkiller esses dois resolvem em parte o meu problema que é acessar PB7 e PB6 como i/o mas não fazem o compilador do arduino os reconhecer como pinos 15 e 14 respectivamente.

Já resolvi  o meu problema específico que é utilizar esses dois pinos para comandar os pinos ENABLE e RS de um LCD de 16 colunas e duas linhas, alterando o arquivo <LiquidCrystal.cpp> da livraria LiquidCrystal  para reconhecer o 15 e o 14 e gerar os comandos adequados conforme descrito no segundo link que você indicou. (no meu caso o RS do LCD está ligado ao pino PB7 e o enable no PB6).

 

Exemplo de umas das linhas do <LiquidCrystal.cpp> alteradas(em negrito o que inclui):

~~~~   // Now we pull both RS and R/W low to begin commands
  if (_rs_pin == 15) PORTB &= ~(1 << PORTB7); else digitalWrite(_rs_pin, LOW);
  if (_enable_pin == 14) PORTB &= ~(1 << PORTB6); else digitalWrite(_enable_pin, LOW);~~~~

 

 

 

Link para o comentário
Compartilhar em outros sites

Uma vez eu vi uma lib no github... Mas eu acho que não guardei o projeto... Senão te passaria ele como primeiro link, e assim, acredito que seu problema seria resolvido, pois nele, há uma alteração para ser usado diretamente no Arduino IDE (inclusão de novo dispositivo).

 

Flw...

Editado: por nagkiller
  • Joinha 1
Link para o comentário
Compartilhar em outros sites

Talves isso te ajude:

 

Procure no github por MiniCore do MCUdude.

 

Você não tem permissão para ver links. Faça login ou cadastre-se.

 

Ele usou o clock interno.

 

Flw...

Editado: por nagkiller
Link para o comentário
Compartilhar em outros sites

@nagkiller Consegui resolver sem alterar a biblioteca do LCD do arduino.

Estou usando o USBasp no gravador(eliminei o bootstrap ganhando memória):

Você não tem permissão para ver links. Faça login ou cadastre-se.

 

e o MiniCore no arduino:

 

verifiquei que no arquivo que define os pinos (pins_arduino.h) dos ATmega no MiniCore, o pino  PB7 é definido como 21 e o PB6 como 20.

Tudo funcionou perfeitamente...

Link para o comentário
Compartilhar em outros sites

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restaurar formatação

  Apenas 75 emoticons máximos são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir apenas como um link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Você não pode colar imagens diretamente. Envie ou insira imagens do URL.

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Criar Novo...