Микроконтроллер atmega48, можете думать что хотите по этому поводу, нравится мне AVR и все тут, внутренний тактовый генератор настроен на 1МГц.
Есть такой код.
#define F_CPU 1000000UL // 1 MHz
#include <avr/io.h>
#include <util/delay.h>
void setup();
int main(void)
{
setup();
while(1);
return 0;
}
void setup()
{
DDRB = 0x0;
DDRC = 0x0;
DDRD = 0x0;
DDRC |= _BV(PC1); // led pin as outpiut
// left motor
DDRB |= _BV(PB7); // enable pin
DDRD |= _BV(PD5); // pin 1
DDRD |= _BV(PD6); // pin 2
// right motor
DDRB |= _BV(PB6); // enable pin
DDRB |= _BV(PB1); // pin 1
DDRB |= _BV(PB2); // pin 2
PORTC |= _BV(PC1);
_delay_ms(100);
PORTC &= ~_BV(PC1);
_delay_ms(100);
}
Он должен настроить выходы контроллера, мигнуть светодиодом на выходе PC1 и уйти в бесконечный цикл, но не тут то было. Он начинает мигать светодиодом бесконечно, как будто setup() вызывается в в бесконечном цикле. Чяднт?.