0

I'm following this example from Adafruit that shows how to program an AVR such as ATMega328P from a Raspberry Pi, using the AVR's ICSP pins.

I run all the steps and it is working fine except a single issue with the clock. I'm testing the traditional blink example from Arduino IDE, that blinks an LED with intervals of 1 second. The problem is that instead of 1 second, my LED is blinking every 15 seconds. Any idea of what might be causing such a problem?

I using Raspberry 4 with Raspbian Buster and an ATMega328P. This is the code I'm compiling with Arduino IDE:

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}
1

TBH I do not think this is a Pi issue. The chip could have the wrong clock speed set in its internal fuses or have a different external oscillator crystal.

You need to run the avrdude program from the command line using the -c and the -v options then look at the result using something like this fuse calculator. My guess is the device has the div by 8 bit set...

You can reset these fuses - always worth doing so you know the state of the chips (esp low cost clones). opOptions

| improve this answer | |
  • Ok, thanks. Sorry but I'm not an expert. How do I reset the fuses? – Miguel Jun 17 at 10:18
  • Ok, I just checked how I reset the fuses. Now I have another issue, because it doesn't reset the fuses. It says avrdude: safemode: efuse changed! Was 5, and is now fd Would you like this fuse to be changed back? [y/n] and if I say yes, it freezes. I'm will create another question in Arduino Stack Exchange. – Miguel Jun 17 at 11:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.