|
AVR Studio, ATmega8 и частота, ..не понятно в чём дело |
|
|
|
Apr 12 2008, 08:41
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Столкнулся c такой проблемой, есть устройство с восьмой мегой и кварцем на 16мГц, ПО к камню пишу на AVR Studio. Делаю задержку на 1 с, а проц после прошивки выдаёт 4 с, получается он работает на частоте 4 мГц. Есть ли в AVR Studio какие то настройки частоты? и если есть, то как установить частоту 16 мГц? ну, а если всё дело не в студии, то подскажите, пожалуйста, в чём.
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
|
Apr 12 2008, 09:00
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(coolibin @ Apr 12 2008, 12:41)  Есть ли в AVR Studio какие то настройки частоты? и если есть, то как установить частоту 16 мГц? ну, а если всё дело не в студии, то подскажите, пожалуйста, в чём. Разумеется, в опциях дебаггера. По умолчанию там 4 мгц. Так что должно быть наоборот: 4 секунды в студии и 1 секунда контроллером. Хотя, если не прошить фузы под внешний кварц, контроллер будет работать на 1 мгц от внутреннего генератора и выдаст таки 4 секунды.
|
|
|
|
|
Apr 13 2008, 13:13
|

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

|
Цитата(coolibin @ Apr 12 2008, 11:41)  Делаю задержку на 1 с Интерессно , а как Вы тогда считаета задержку? По колличеству тактов для 16 мгц, или по прцессорному времени в студии?
--------------------
нельзя недооценивать предсказуемость глупости
|
|
|
|
|
Apr 14 2008, 07:22
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Цитата(sKWO @ Apr 13 2008, 16:13)  Интерессно , а как Вы тогда считаета задержку? По колличеству тактов для 16 мгц, или по прцессорному времени в студии? По расчётам по количеству тактов для 16 мгц, в реале процессор делает задержку в 4 раза дольше.
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
|
Apr 16 2008, 07:47
|
Участник

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

|
Цитата(coolibin @ Apr 16 2008, 10:20)  Код программы и настройки Fuse битов дать сейчас не могу. А вот что касается настроек проекта, то меня как раз этот вопрос и интересует, где находжятся настройки в AVR Studio? я искал не нашел. Имеются ввиду настройки частоты. Debug->AVR Simulator Options->Frequency)
|
|
|
|
|
Apr 17 2008, 16:28
|
Местный
  
Группа: Участник
Сообщений: 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
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
|
Apr 18 2008, 12:04
|
Участник

Группа: Новичок
Сообщений: 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мГц. Кстати, влияет ли эта частота на реальную частоту? На реальную частоту не влияет. У Вас наверно МК работает от внутреннего генератора, отпаяйте кварц и проверте будет ли работать прошивка.
|
|
|
|
|
Apr 18 2008, 12:26
|

Местный
  
Группа: Участник
Сообщений: 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 задержки я стараюсь меньше использовать, пользуюсь таймерами К примеру на си проджэкт Alechin Jan использованию таймера 0 атмеги128
--------------------
нельзя недооценивать предсказуемость глупости
|
|
|
|
|
Apr 18 2008, 14:07
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Цитата(megachip @ Apr 18 2008, 15:04)  ... У Вас наверно МК работает от внутреннего генератора, отпаяйте кварц и проверте будет ли работать прошивка. А если он работает от внутреннего геннератора, как мне его заставить работать от внешнего кварца? Да, и ещё, а почему, если он работает на 1МГц, задержка расчитаная на 16 МГц работает 4 сек, а не 16 сек?
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
|
Apr 18 2008, 15:19
|
Гуру
     
Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613

|
Цитата(coolibin @ Apr 18 2008, 18:07)  А если он работает от внутреннего геннератора, как мне его заставить работать от внешнего кварца? Правильной установкой Fuse Цитата Да, и ещё, а почему, если он работает на 1МГц, задержка расчитаная на 16 МГц работает 4 сек, а не 16 сек? Если посчитать задержку в симуляторе при установленной частоте симуляции 4 МГц, а запустить от внутреннего генератора на 1 МГц, то так и будет. Считайте установки Fuse с кристалла и приведите здесь, тогда будет все видно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|