Bom dia pessoal.

Estou precisando gerar um sinal de 1 MHZ por um dos pinos do arduíno Uno. Alguém sabe quais são os parâmetros corretos?

Encontrei esse código, mas ele gera 8MHZ:

/ For Atmega328

void setup ()
{
// set up 8 MHz timer on pin 9
pinMode (9, OUTPUT);
// set up Timer 1
TCCR1A = _BV (COM1A0); // toggle OC1A on Compare Match
TCCR1B = _BV(WGM12) | _BV(CS10); // CTC, no prescaling
OCR1A = 0; // output every cycle
}

void loop () {}

É para fazer uma recuperação de "Fuse Brick".

Obrigado.

Exibições: 2077

Responder esta

Respostas a este tópico

Amigo provavelmente você já tenha resolvido o problema, por conta da data do post.

Mais para aqueles que também como eu mexeram erroneamente nas configurações dos fuses do atmega segue a dica.

Garimpando pela internet achei o seguinte.

O código para gerar 1mhz é o seguinte.

//Use Timer/Counter1 to generate a 1MHz square wave on Arduino pin 9.
//J.Christensen 27Apr2012

void setup(void)
{
DDRB = _BV(DDB1); //set OC1A/PB1 as output (Arduino pin D9, DIP pin 15)
TCCR1A = _BV(COM1A0); //toggle OC1A on compare match
OCR1A = 7; //top value for counter
TCCR1B = _BV(WGM12) | _BV(CS10); //CTC mode, prescaler clock/1
}

void loop(void)
{
}

Com esse código você pode ligar o pino 9 do arduino que foi gravado o código no pino XTAL1 do atmega , que no caso é o pino 9.

Com essa montagem, você consegue recuperar o seu chip "morto" com seu gravador isp.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço