Проблемы с _delay_ms

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
Родился
Сообщения: 14
Зарегистрирован: Чт июн 18, 2015 17:43:47

Сообщение JI0ku »

Вечер добрый.
Совершил святотатство: пытался программировать Arduino Uno через Atmel Studio. В принципе, всё работает, но не могу решить проблему времени.

Код: Выделить всё

#include <util/delay.h>
#include <avr/io.h>
#define	F_CPU 10000000UL;

int main(void)
{
    DDRB=0xff;
    while(1)
    {
        PORTB=0xff;
		_delay_ms(1000);
		PORTB=0x00;
		_delay_ms(1000);
    }
}
Простейшее мигание, которое должно быть 1 раз в секунду на деле мигает в 10 раз быстрее (по ощущениям). Частоту пробовал менять - не влияет. В чём может быть причина. Это, конечно, мелочь, но разобраться интересно.
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Сообщение Flasher »

а в ардуино уно частота кварца разве 10 МГц?
Реклама
Родился
Сообщения: 14
Зарегистрирован: Чт июн 18, 2015 17:43:47

Сообщение JI0ku »

[uquote="Flasher",url="/forum/viewtopic.php?p=3206082#p3206082"]а в ардуино уно частота кварца разве 10 МГц?[/uquote]
Нет, кварц на 16МГц. Но и изменение на

Код: Выделить всё

#define	F_CPU 16000000UL;
ничего не меняет.
Электрический кот
Аватара пользователя
Сообщения: 1031
Зарегистрирован: Чт июн 20, 2013 00:00:58
Откуда: москва, м.Сходненская

Сообщение Mishany »

а мк не ресетится? включить оптимизацию и дефайн перед инклудом с делаем

Код: Выделить всё

#define   F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
бл*** а накуя точка с запятой в строке с #define F_CPU 16000000UL????
перед подключением delay.h F_CPU уже должна быть определена!
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «Практика»