Привет всем. delay() Ошибается в 8 раз. Прошил через Arduino Uno как ISP микроконтроллер ATmega8. Для теста поставил стандартный скетч "Blink". Вопреки моим ожиданиям, функция delay(1000) засыпала не на 1 секудну а на ~ 8 секунд. При проверки ШИМ с помощью функции analogWrite() тоже было очевидно, что период ШИМ сильно увеличен: было заметно как моргает диод. Пробовал с другим МК (ATtiny13v) - все было корректно. Подскажите, как можно настроить таймер МК, чтобы можно было спокойно пользоваться адаптированным языком Arduino IDE, а не нискоуровневым Си. Заранее благодарен.
Рискну предположить что что ваша АТмега8 работает на внутреннем тактовом генераторе, как раз в 1МГц. Когда прошивали какую плату и какой процессор выбрали?
На внутреннем, но на 8 МГц вот содержимое файла boards: atmega8noxtalfast.name=ATmega8(A) (8MHz int. RC osc, short bootloader delay, 38400 baud rate) atmega8noxtalfast.upload.protocol=arduino atmega8noxtalfast.upload.maximum_size=7168 atmega8noxtalfast.upload.speed=38400 atmega8noxtalfast.bootloader.low_fuses=0xe4 atmega8noxtalfast.bootloader.high_fuses=0xc2 atmega8noxtalfast.bootloader.path=atmega8a atmega8noxtalfast.bootloader.file=ATmegaBOOT.hex atmega8noxtalfast.bootloader.unlock_bits=0x3F atmega8noxtalfast.bootloader.lock_bits=0x0F atmega8noxtalfast.build.mcu=atmega8 atmega8noxtalfast.build.f_cpu=8000000L atmega8noxtalfast.build.core=arduino:arduino atmega8noxtalfast.build.variant=arduino:standard
Могу предположить что для внутреннего Гены нужен другой Лодырь.Да и другие фьюзы.Посмотрите здесь http://tinyurl.com/ovjxh9a В Вашем случае low_fuses=0xa4 high_fuses=0xdc НЕХ файл можно там же скачать
Большое спасибо. Проблема решена. Для таких же новичков, как и я, описываю свою ошибку: Я думал, что загрузчик=скетч для Ардуины "arduino as isp", однако загрузчиком является прошивка, которую нужно ставить именно на программируемый микроконтроллер перед тем, как заливать на него скетчи. В моем случае он был новый с корявым китовым загрузчиком.
Я сначала залил загрузчик на новый мк с помощью Arduino IDE. А потом прошил скетч на новый мк тоже через ардуину. Таймер нормализовался и проблема решилась. Usbasp'ом тоже раньше не получалось прошить эту атмегу, но после заливки загрузчика все заработало.
Если вы загрузчик заливали через IDE, то она вам еще и фьюзы прописала. Какая плата была выбрана в IDE?
Атмега8. Фюзы в описании платы я рассчитывал калькулятором. Я правильно понял, на будущее, что для атмег процедура заливки загрузчика в ИДЕ автоматически подбирает фьюзы, не смотря на текст в boards.txt? Или всё-таки она берёт их оттуда?