|
ATtiny48 - проблемы с тактированием |
|
|
|
Mar 24 2011, 17:30
|
Группа: Участник
Сообщений: 14
Регистрация: 3-03-11
Из: Рыбинск
Пользователь №: 63 374

|
Захотел получить на выходе квадратный импульсный сигнал. Сделал бесконечный цикл с двумя одинаковыми паузами и выводом 1 и 0 после каждой из них. Но вместо ровного импульса на выходе получается огромное преобладание по времени либо 0, либо 1 - в зависимости от задержки. Задержки делал с помощью _delay_ms() и _delay_us(). Не могу разобраться, в чём проблема.
|
|
|
|
|
 |
Ответов
|
Mar 25 2011, 08:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Используйте CvAVR. Насколько я сталкивался с WinAVR, прекрасный компилятор, но функции _delay_xxxx у него чрезвычайно глюкавые ... Даже один и тот же код, написанный на CvAVRе и работающий абсолютно без проблем, при простой перекомпиляции в WinAVRе (с мин. требуемыми изменениями) начинает дико глючить. При прочих равных условиях (плата, схема, частоты, ...). Я это так и не поборол  . Мне даже приходилось использовать для организации этих задержек таймер. На таймере все чисто работает. Поэтому WinAvr стараюсь не применять. По факту, я использую его только для ObDev USB - деваться некуда. Все остальное делаю на CvAvr. Глючки тоже встречаются, но они все вместе взятые не такие мерзопакостные, как _delay в WinAVR.
Сообщение отредактировал hd44780 - Mar 25 2011, 08:45
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Mar 25 2011, 09:18
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 8-12-09
Пользователь №: 54 138

|
Цитата(hd44780 @ Mar 25 2011, 10:41)  Мне даже приходилось использовать для организации этих задержек таймер. На таймере все чисто работает. Это самый правильный и точный метод, КМК, если имеется незадействованный таймер. Цитата(hd44780 @ Mar 25 2011, 10:41)  Поэтому WinAvr стараюсь не применять. По факту, я использую его только для ObDev USB - деваться некуда. Все остальное делаю на CvAvr. Глючки тоже встречаются, но они все вместе взятые не такие мерзопакостные, как _delay в WinAVR. Я использую GCC (WinAVR) уже достаточно давно, имею опыт. И с _delay* нет никаких глюков, скорее проблема в некорректном использовании ;-) Лично я не встретил еще идеального компилятора
|
|
|
|
|
Mar 25 2011, 11:08
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 8-12-09
Пользователь №: 54 138

|
Цитата(Сергей Борщ @ Mar 25 2011, 12:48)  Ради истины: есть (был). В версии, которую допиливает и распространяет Атмел был глюк - задержки там формируются в 4 раза короче. Возможно... Я никогда не пользовал Atmel-овский toolchain, всегда брал WinAVR, как говорится, нативный. Может в какойто версии и был баг, но я его, похоже, перешагнул Теперь по теме. Так как там дела, Паша_3? Не молчи, рассказывай, где грабли лежали
|
|
|
|
Сообщений в этой теме
Паша_З ATtiny48 - проблемы с тактированием Mar 24 2011, 17:30 V_N Код в студию Mar 24 2011, 17:33 Паша_З Код#define F_CPU 8000000
#include <avr/io.h... Mar 24 2011, 17:47 Stepan_L _delay_ms(20);
PORTD = 0x0;
_delay_ms(20);
PORT... Mar 25 2011, 10:22 V_N да вроде все верно а как обстоят дела с Watchdog н... Mar 24 2011, 18:05 DpInRock Выключите вочдог при прошивке. Если он программиру... Mar 24 2011, 18:05 Паша_З Watchdog не включён. Проверял. Mar 24 2011, 18:51 nk@ Судя по коду у Вас GCC ?
Оптимизацию в опциях ком... Mar 24 2011, 19:12   demiurg_spb Цитата(Сергей Борщ @ Mar 25 2011, 13:48) ... Mar 27 2011, 09:35    SysRq Цитата(demiurg_spb @ Mar 27 2011, 13:35) ... Mar 28 2011, 14:28    nk@ Цитата(demiurg_spb @ Mar 27 2011, 12:35) ... Mar 29 2011, 05:53     demiurg_spb Цитата(nk@ @ Mar 29 2011, 08:53) Не могли... Apr 1 2011, 04:53 _Pasha Цитата(hd44780 @ Mar 25 2011, 11:41) Все ... Mar 25 2011, 09:26  777777 Цитата(_Pasha @ Mar 25 2011, 13:26) мир... Apr 4 2011, 05:24 Паша_З Проверил ещё раз Watchdog: выключен (hfuse = 0xdf)... Mar 30 2011, 14:18 Паша_З Обнаружил, что проблема заключается в периодическо... Mar 31 2011, 16:00 smk Дело в питании. У Вас когда устанавливается 1 на в... Mar 31 2011, 16:53 nk@ Цитата(smk @ Mar 31 2011, 19:53) Дело в п... Mar 31 2011, 17:33 1100.1010.1011.1010 Такая же беда с таким же кодом на atttiny25,WinAVR... Apr 3 2011, 12:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|