Обсуждаем контроллеры компании Atmel.
Ответить

Re: Тактовая частота МК Atmega8

Сб апр 10, 2021 12:42:22

Установи фьюзы low E4 high D9
в виде галочек вот http://homes-smart.ru/fusecalc/?prog=av ... rt=ATmega8 можно посмотреть

Re: Тактовая частота МК Atmega8

Сб апр 10, 2021 22:07:44

нашел старую программу, замени .zip на .exe , понажимай кнопки, посмотри результат.


Не получилось открыть, папка повреждена

Добавлено after 13 minutes 53 seconds:
Установи фьюзы low E4 high D9
в виде галочек вот http://homes-smart.ru/fusecalc/?prog=av ... rt=ATmega8 можно посмотреть


Я использую AVRDUDE. Фьюзы там ставятся автоматически для микроконтроллера, который используешь.
Во фьюзах я еще не прошарен, и есть опасения, что я могу сделать что-то не так. Фьюзы, которые ты мне предлагаешь поставить значительно различаются, со фьзами которые поставились автоматически, например на SPIEN я вообще не могу установить галочку ( смотри фото).
Вложения
112.png
(20.08 KiB) Скачиваний: 136

Re: Тактовая частота МК Atmega8

Вс апр 11, 2021 11:10:21

Это не AVRDUDE, а AVRDUDE_PROG. И правильно, что не дает выстрелить себе в ногу... хотя не до конца.

Re: Тактовая частота МК Atmega8

Вс апр 11, 2021 15:40:11

Это не AVRDUDE, а AVRDUDE_PROG. И правильно, что не дает выстрелить себе в ногу... хотя не до конца.


А как тогда сделать, чтобы SPIEN ( в AVRDUDE_PROG) стал активным, и вообще для atmega8 эти фьюзы http://homes-smart.ru/fusecalc/?prog=av ... rt=ATmega8 можно устанавливать без опасения, подскажите пожалуйста, я изучил их но пока опыта не имею и побаиваюсь заморозить контролер

Re: Тактовая частота МК Atmega8

Вс апр 11, 2021 16:14:13

maksimdag0 писал(а):А как тогда сделать, чтобы SPIEN ( в AVRDUDE_PROG) стал активным

Зачем ?
SPIEN отключает SPI, по которому заливается программа в Atmega8.
Если SPIEN отключить, то программатор AVRDUDE и AVRDUDE_PROG использовать будет нельзя...
Придётся покупать параллельный программатор и устанавливать соответствующую программу к нему...
Кому это надо ? ))
:tea:

Re: Тактовая частота МК Atmega8

Вс апр 11, 2021 16:55:09

maksimdag0 писал(а):А как тогда сделать, чтобы SPIEN ( в AVRDUDE_PROG) стал активным

Зачем ?
SPIEN отключает SPI, по которому заливается программа в Atmega8.
Если SPIEN отключить, то программатор AVRDUDE и AVRDUDE_PROG использовать будет нельзя...
Придётся покупать параллельный программатор и устанавливать соответствующую программу к нему...
Кому это надо ? ))
:tea:

Мне посоветовали их поставить, а я не шарю. Как тогда понять, почему программа так работает? Я понял так, МК программируется (конфигурируется) через фьюзы. Через них мы устанавливаем частоту тактового генератора (например 8МГц на atmega8) а в программе (IDE) мы устанавливаем частоту на которой работает микроконтроллер, для того что бы он просто понимал на какой частоте работает данный МК и соответствовал требованием данной частоты. То есть через программу ( когда мы устанавливаем частоту при создании проекта в IDE) мы не можем установить частоту МК? Верно ли я все понял?

Re: Тактовая частота МК Atmega8

Вс апр 11, 2021 17:45:58

maksimdag0 писал(а):А как тогда сделать, чтобы SPIEN ( в AVRDUDE_PROG) стал активным


Придётся покупать параллельный программатор

А можно собрать доктор фьюзов.

Добавлено after 4 minutes 33 seconds:
[uquote="roman.com",url="/forum/viewtopic.php?p=4013880#p4013880"]
maksimdag0 писал(а):А как тогда сделать, чтобы SPIEN ( в AVRDUDE_PROG) стал активным


Мне посоветовали их поставить, а я не шарю. Как тогда понять, почему программа так работает? Я понял так, МК программируется (конфигурируется) через фьюзы. Через них мы устанавливаем частоту тактового генератора (например 8МГц на atmega8) а в программе (IDE) мы устанавливаем частоту на которой работает микроконтроллер, для того что бы он просто понимал на какой частоте работает данный МК и соответствовал требованием данной частоты. То есть через программу ( когда мы устанавливаем частоту при создании проекта в IDE) мы не можем установить частоту МК? Верно ли я все понял?

Всё так.
Интересно ... посоветовали то чего делать не нужно. Поглумиться хотели навеное.

Re: Тактовая частота МК Atmega8

Вс апр 11, 2021 19:26:40

я понял, что в МК atmega8 тактовый генератор рассчитан на 1МГц.

Верно.
программы пишу в CodeVisionAVR

Допустим.

1. Устанавливаем нужную частоту тактового генератора atmega8 с помощью фьюзов.
Screenshot_1.jpg
(58.25 KiB) Скачиваний: 151

0001 = E1 - 1 мгц
0010 = E2 - 2 мгц
0011 = E3 - 4 мгц
0100 = E4 - 8 мгц
...
и т.д.

2. В программе (IDE) мы устанавливаем частоту на которой работает микроконтроллер.
Screenshot_2.jpg
(26.75 KiB) Скачиваний: 158

Всё))
:tea:

Re: Тактовая частота МК Atmega8

Вс апр 11, 2021 20:38:13

Разобрался, спасибо всем

Re: Тактовая частота МК Atmega8

Пн апр 12, 2021 14:06:26

Фьюзы там ставятся автоматически

В смысле автмоатически? Они считываются с МК (это обязательная процедура) и программа их показывает. Там нет ничего автоматического и быть не может.

Добавлено after 2 minutes 43 seconds:
а в программе (IDE) мы устанавливаем частоту на которой работает микроконтроллер, для того что бы он просто понимал на какой частоте работает данный МК и соответствовал требованием данной частоты.

IDE это знать нафиг не нужно. Этого требуют заголовочники типа delay.h, которые рассчитывают интервалы. Если они не используются в программе, то значение частоты указывать и не нужно вовсе.

Re: Тактовая частота МК Atmega8

Вт апр 13, 2021 15:39:56

parovoZZ писал(а):IDE это знать нафиг не нужно.

IDE это знать нужно.
Когда мы программируем в IDE (в любой IDE) мы должны сказать IDE на какой частоте работает МК.
Тогда IDE сама сделает все необходимые настройки (в библиотеки delay.h, в соответствии с частотой МК).
Вот и всё))
:tea:

Re: Тактовая частота МК Atmega8

Вт апр 13, 2021 16:08:00

Тогда IDE сама сделает все необходимые настройки

В IDE нет никаких частотозависимых настроек. В противном случае прошу их перечислить. Все.

в библиотеки delay.h,

К IDE она никакого отношения не имеет. Лично я её не использую, соответсвенно и нигде никаких частот не указываю.

Добавлено after 2 minutes 22 seconds:
И кстати - я очень люблю прыгать с одной тактовой частоты на другую. Это несколько запутывает, но зато в RUN режиме работаем быстро, в IDLE режим еле-еле ползём и кушаем очень мало. Вот какую частоту сообщать IDE? Ну-ка, ну-ка....

Re: Тактовая частота МК Atmega8

Вт апр 13, 2021 16:16:04

roman.com, во-первых delay.h - это не "библиотека". Это называется "заголовочный файл". Во-вторых, это не часть IDE, как уже сказали. Просто там внутри есть макросы препроцессора, которые при расчетах кол-ва тактов на единицу времени, опираются на константу F_CPU. IDE оно может быть нужно, только если там есть симулятор и только ему. И обычно это в отдельном месте симулятора прописывается. Но для delay.h IDE не делает никаких "настроек". Что CVAVR, что avr-gcc просто берет константу и считает на этапе препроцессора.

Re: Тактовая частота МК Atmega8

Вт апр 13, 2021 17:04:26

IDE оно может быть нужно, только если там есть симулятор и только ему.

В микрочип студио всё-равно оно работает криво, хоть какую указывай частоту. Да и то оно нужно, если есть желание узнать, сколько реально времени (в секундах) тратится на ту или иную функцию (это если лень самому пересчитывать такты). А если МК засимулировать в сон, так там он вообще считатет не пойми что. Поэтому самое надёжное - это счётчик тактов.

Re: Тактовая частота МК Atmega8

Вт апр 13, 2021 18:34:14

нет у AVR тактов, есть только циклы.

Re: Тактовая частота МК Atmega8

Вт апр 13, 2021 22:42:52

Да, точняк. Подглядел в студии: Cycle Counter

Re: Тактовая частота МК Atmega8

Ср апр 14, 2021 08:54:52

Возникла теперь другая проблема. Когда я прописываю F_CPU 8000000UL, то по идеии в МК контроллер должна установиться частота 8МГц, верно же? Но этого не происходит!
Прописываю F_CPU в самом начале кода "#define F_CPU 8000000UL"

Re: Тактовая частота МК Atmega8

Ср апр 14, 2021 09:19:52

maksimdag0 писал(а):то по идеии в МК контроллер должна установиться частота 8МГц
по идеииииии частота в МК устанавливается фьюзами, не этой записью в тексте программы.

Re: Тактовая частота МК Atmega8

Ср апр 14, 2021 09:54:23

Возникла теперь другая проблема. Когда я прописываю F_CPU 8000000UL, то по идеии в МК контроллер должна установиться частота 8МГц, верно же? Но этого не происходит!
Прописываю F_CPU в самом начале кода "#define F_CPU 8000000UL"

:facepalm: :facepalm: :facepalm:
Нет, не верно! Выше свои же слова прочитайте. F_CPU - это не фьюз! Это тоже самое, что в проекте IDE прописать.

Re: Тактовая частота МК Atmega8

Ср апр 14, 2021 10:06:37

Возникла теперь другая проблема. Когда я прописываю F_CPU 8000000UL, то по идеии в МК контроллер должна установиться частота 8МГц, верно же? Но этого не происходит!
Прописываю F_CPU в самом начале кода "#define F_CPU 8000000UL"


Про директиву DEFINE можно прочитать здесь
http://www.c-cpp.ru/books/define

После прочтения становится понятно, что никакого отношения к регистрам МК она не имеет.
Частота МК задаётся фьюзом или регистром прескалера главной тактовой частоты. Подробности в даташите на МК.
Ответить