реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> AVR Studio, ATmega8 и частота, ..не понятно в чём дело
coolibin
сообщение Apr 12 2008, 08:41
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Столкнулся c такой проблемой, есть устройство с восьмой мегой и кварцем на 16мГц, ПО к камню пишу на AVR Studio. Делаю задержку на 1 с, а проц после прошивки выдаёт 4 с, получается он работает на частоте 4 мГц. Есть ли в AVR Studio какие то настройки частоты? и если есть, то как установить частоту 16 мГц? ну, а если всё дело не в студии, то подскажите, пожалуйста, в чём.


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Apr 12 2008, 09:00
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(coolibin @ Apr 12 2008, 12:41) *
Есть ли в AVR Studio какие то настройки частоты? и если есть, то как установить частоту 16 мГц? ну, а если всё дело не в студии, то подскажите, пожалуйста, в чём.

Разумеется, в опциях дебаггера. По умолчанию там 4 мгц. Так что должно быть наоборот: 4 секунды в студии и 1 секунда контроллером. Хотя, если не прошить фузы под внешний кварц, контроллер будет работать на 1 мгц от внутреннего генератора и выдаст таки 4 секунды.
Go to the top of the page
 
+Quote Post
sKWO
сообщение Apr 13 2008, 13:13
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(coolibin @ Apr 12 2008, 11:41) *
Делаю задержку на 1 с

Интерессно , а как Вы тогда считаета задержку? По колличеству тактов для 16 мгц, или по прцессорному времени в студии?


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
coolibin
сообщение Apr 14 2008, 07:22
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Цитата(sKWO @ Apr 13 2008, 16:13) *
Интерессно , а как Вы тогда считаета задержку? По колличеству тактов для 16 мгц, или по прцессорному времени в студии?

По расчётам по количеству тактов для 16 мгц, в реале процессор делает задержку в 4 раза дольше.


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
coolibin
сообщение Apr 14 2008, 13:40
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Так что? ни у кого никаких идей?


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 14 2008, 13:49
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(coolibin @ Apr 14 2008, 15:40) *
Так что? ни у кого никаких идей?

Вам задали пару уточняющих вопросов.
Потрудитесь на них ответить.

Приведите код программы, настройки проекта и настройки Fuse битов.
Go to the top of the page
 
+Quote Post
coolibin
сообщение Apr 16 2008, 07:20
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Код программы и настройки Fuse битов дать сейчас не могу. А вот что касается настроек проекта, то меня как раз этот вопрос и интересует, где находжятся настройки в AVR Studio? я искал не нашел. Имеются ввиду настройки частоты.


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
megachip
сообщение Apr 16 2008, 07:47
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 13-06-05
Пользователь №: 5 967



Цитата(coolibin @ Apr 16 2008, 10:20) *
Код программы и настройки Fuse битов дать сейчас не могу. А вот что касается настроек проекта, то меня как раз этот вопрос и интересует, где находжятся настройки в AVR Studio? я искал не нашел. Имеются ввиду настройки частоты.


Debug->AVR Simulator Options->Frequency)
Go to the top of the page
 
+Quote Post
coolibin
сообщение Apr 17 2008, 16:28
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



- atmega8
- кварц 16МГц
- Фьюзы:
а) CKOPT = 0
б) CKSEL = E(1110)
- Debug->AVR Simulator Options->Frequency = 4мГц. Кстати, влияет ли эта частота на реальную частоту?
- Код:
Код
Wait1s:
    ldi        Cnt2,    250
    Wait1s_out:
        ldi        Cnt1,    251
        Wait1s_mid:
            ldi        Cnt0,    255
            Wait1s_in:
                nop
                dec        Cnt0
                brne    Wait1s_in
            dec        Cnt1
            brne    Wait1s_mid
        dec        Cnt2
        brne    Wait1s_out
    ret


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
coolibin
сообщение Apr 18 2008, 10:40
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



ХЕЛП!!!!


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
megachip
сообщение Apr 18 2008, 12:04
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 13-06-05
Пользователь №: 5 967



Цитата(coolibin @ Apr 17 2008, 19:28) *
- atmega8
- кварц 16МГц
- Фьюзы:
а) CKOPT = 0
б) CKSEL = E(1110)
- Debug->AVR Simulator Options->Frequency = 4мГц. Кстати, влияет ли эта частота на реальную частоту?


На реальную частоту не влияет.
У Вас наверно МК работает от внутреннего генератора, отпаяйте кварц и проверте будет ли работать прошивка.
Go to the top of the page
 
+Quote Post
sKWO
сообщение Apr 18 2008, 12:26
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(coolibin @ Apr 17 2008, 19:28) *
- Debug->AVR Simulator Options->Frequency = 4мГц. Кстати, влияет ли эта частота на реальную частоту?

С чего это ей влиять? Это же частота отладчика (симулятора) контроллера. Он (отладчик) будет симулировать работу Вашей программы на частоте 4мгц, в Ваших настройках по умолчанию.
Вы хотите сделать занятую задержку, посчитайте какое время занимает один такт при 16мгц и легко узнать колличество тактов для определённой задержки.
На си было бы так:
Код
#define XTALL 16.0
#define delay_us(us) __delay_cycles (XTALL * us);
#define delay_ms(ms) delay_us (1000 * ms)

В Вашем же случае посмотрите внимательно сколько тактов занимает каждая команда ну и внимательно с внешними циклами повторения.
BUSU задержки я стараюсь меньше использовать, пользуюсь таймерами smile.gif
К примеру на си проджэкт Alechin Jan использованию таймера 0 атмеги128
Прикрепленные файлы
Прикрепленный файл  AsyncTimer.zip ( 24.78 килобайт ) Кол-во скачиваний: 35
 


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
coolibin
сообщение Apr 18 2008, 14:07
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Цитата(megachip @ Apr 18 2008, 15:04) *
...
У Вас наверно МК работает от внутреннего генератора, отпаяйте кварц и проверте будет ли работать прошивка.

А если он работает от внутреннего геннератора, как мне его заставить работать от внешнего кварца?


Да, и ещё, а почему, если он работает на 1МГц, задержка расчитаная на 16 МГц работает 4 сек, а не 16 сек?


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 18 2008, 14:16
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(coolibin @ Apr 17 2008, 19:28) *
- atmega8 - кварц 16МГц
- Фьюзы: а) CKOPT = 0.......
- Код: ...............
1. По поводу fuses: посмотрите внимательно на таблицу 4 в DS - для 16 МГц CKOPT=1 (для вышего случая - вторая строчка снизу в таблице, последняя строка таблицы - не Ваш случай !)
2. По поводу процедуры Wait1s. Не поленился подсчитать время выполнения процедуры в тактах. У меня получилось 48 255 254 такта. При "скорости" контроллера 16 000 000 тактов в секунду получаем 48 255 254 / 16 000 000 = 3,016 секунд. У Вас контроллер делает задержку на 4 секунды... Я ошибся, или Вы грубо замеряли?
Go to the top of the page
 
+Quote Post
gte
сообщение Apr 18 2008, 15:19
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(coolibin @ Apr 18 2008, 18:07) *
А если он работает от внутреннего геннератора, как мне его заставить работать от внешнего кварца?

Правильной установкой Fuse
Цитата
Да, и ещё, а почему, если он работает на 1МГц, задержка расчитаная на 16 МГц работает 4 сек, а не 16 сек?

Если посчитать задержку в симуляторе при установленной частоте симуляции 4 МГц, а запустить от внутреннего генератора на 1 МГц, то так и будет.
Считайте установки Fuse с кристалла и приведите здесь, тогда будет все видно.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 23:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01802 секунд с 7
ELECTRONIX ©2004-2016