вы уже который раз вместо ответа на вопрос "что не так" задаете свой вопрос "а разве все так?"BerZerK-ku писал(а):Вы уже выложили этот код, на деле оказавшийся не тем что надо, а теперь хвастаетесь результатами чего-то.
WinAvr в вопросах и ответах
битва с дураками проиграна, победители торжествуют. слава победителям!
- Реклама
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Мне кажется или я уже писал, что задержки не соответствуют тем, что требовались от ф-ии?
Мастер Ломастер, приведите уже корректировку это кода наверное ) А то получается то, что получается 
вам кажетсяBerZerK-ku писал(а):Мне кажется или я уже писал, что задержки не соответствуют тем, что требовались от ф-ии?
откуда мне знать, что вы вообще умеете что-либо правильно делать?
битва с дураками проиграна, победители торжествуют. слава победителям!
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Может приведете свои цифры для этого кода? Тип мк - любой из серии ATmega, тип компилятора - пусть ваш любимый winavr. Еще какие-то данные требуются? Или может озвучите ваши настройки при которых удалось достичь желаемого?
Последний раз редактировалось BerZerK-ku Пт дек 30, 2011 14:45:16, всего редактировалось 1 раз.
- Реклама
я уже приводил. atmega88, тактовая частота от 10 и более Мгц, в коде надо подправить одно число
погрешности я указывал ранее - если хотите, поищите и ознакомьтесь. протестировано по счетчику отладчика AVR Studio. вы меня утомляете: если у кого-то есть претензии к кому-то, то любые обвинения надо доказать - так по-моему? или вы и этих правил не знаете (дуэльного кодекса не знаете, правил приличия не знаете, правил оформления кода не знаете)? а вы вынуждаете почему-то меня оправдываться, даже не доказав, что вы имеете на то основания!
битва с дураками проиграна, победители торжествуют. слава победителям!
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Слова "подправьте циферку и все заработает" вообще вызывают умиление, че бы тогда не "напишите свою задержку и проверяйте на ней".
Какие доказательства нужны? Числа? Ну например могу привести такие цифры: 130+ мкс вместо ожидаемых 100мкс. Скрины? ну на них те же цифры, не вижу смысла врать.
знаете такое правило "ослиный мостик"? ну, только осел не перейдет... обычно задачи типа мостика задают на собеседованиях, чтобы сразу оценить степень подготовки кандидата... для вас таким мостиком стал мой принцип не давать на 100% готового кода - найти и подправить значение ЕДИНСТВЕННОЙ цифры в коде вы не сумели... не перешли мостик
жаль. ладно, чтобы не мучить ваш интеллект, скажу: надо вместо 1 поставить 0.8 в качесвте параметра _delay_us
это же очевидно любому профессионалу: требуется коррекция вложенной задержки для компенсации времени работы "внешнего" цикла 
битва с дураками проиграна, победители торжествуют. слава победителям!
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Исходя из ваших слов функция должна выглядеть так ?
Mega88, частота 10Мгц. Вместо 100мкс дает 150 мкс. Оптимизация по скорости максимальная. Вы ничего не перепутали?
И почему именно 0.8? Мне интересны математические выкладки, как эти 0.8 дадут одинаковую компенсацию на разных частотах (вы заявили о 10Мгц и выше). Прошу снизойти до меня и не проигнорировать эти банальные для профессионала моменты.
Код: Выделить всё
void mega_delay(uint16_t delay_in_microseconds)
{
for(; delay_in_microseconds; delay_in_microseconds--)
_delay_us(0.8F);
}И почему именно 0.8? Мне интересны математические выкладки, как эти 0.8 дадут одинаковую компенсацию на разных частотах (вы заявили о 10Мгц и выше). Прошу снизойти до меня и не проигнорировать эти банальные для профессионала моменты.
Последний раз редактировалось BerZerK-ku Пт дек 30, 2011 15:31:01, всего редактировалось 1 раз.
видимо, вы превзошли мои худшие предположения о ваших навыках и умениях
мне снять видео, как я все делаю, чтобы вы поверили?
битва с дураками проиграна, победители торжествуют. слава победителям!
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
ваша беспомощность просто поразительна... и вы еще на мою компетенцию бочку катили... вот вам супермега проект, проверяйтеBerZerK-ku писал(а):Зачем? Достаточно проектаи я сам пощупаю.
- Вложения
-
- Work.zip
- (9.55 КБ) 214 скачиваний
битва с дураками проиграна, победители торжествуют. слава победителям!
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
А вот так уже почему-то не работает? Поясните что я не так делаю? Что я сломал?
Чтобы не быть голословным, при i = 100 между сбросом и установкой бита в порту проходит 113 мкс, вместо 100. Дальше ситуация не лучше.
Чтобы не быть голословным, при i = 100 между сбросом и установкой бита в порту проходит 113 мкс, вместо 100. Дальше ситуация не лучше.
- Вложения
-
- work.rar
- (9.92 КБ) 193 скачивания
Ребята, я уже за.пываюсь вас читать - как и большинство присутствующих, я уверен.
Итак, в чем вопрос -использование указателей на структуру - уменьшает или увеличивает размер кода ?
В разных вариантах оптимизации - типа..
Вы там не о.уели ???
Где проблема ?
Итак, в чем вопрос -использование указателей на структуру - уменьшает или увеличивает размер кода ?
В разных вариантах оптимизации - типа..
Вы там не о.уели ???
Где проблема ?
- Сообщения: 512
- Зарегистрирован: Вт дек 22, 2009 02:24:50
urry, их уже не остановить. Новогоднее настроение люди нам создают и пускай
На радиокоте так можно, я и сам проверял 
гм... вы же круче меня в Си рубите - откуда такие вопросы-то? я поковырялся, причину странностей обнаружил. во всяком случае для такого кода я все понял:BerZerK-ku писал(а):А вот так уже почему-то не работает? Поясните что я не так делаю? Что я сломал?
Чтобы не быть голословным, при i = 100 между сбросом и установкой бита в порту проходит 113 мкс, вместо 100. Дальше ситуация не лучше.
Код: Выделить всё
for(uint16_t i=100; i<200; i++){
PORTB = 11;
mega_delay(i);
PORTB = 0;
mega_delay(i);
PORTB = 1;
}
может, вы поделитесь сокровенным знанием по этому вопросу? я ведь по-вашему мнению слишком слабо в Си разбираюсь. чтобы сказать что-то умное...
скажу лишь следующее: в данном случае погрешность задержек чуть больше, чем для идеального случая - добавляются накладные расходы по пересылке переменных, передаваемых в качестве параметра функции... что ж, выход один - снова подкорректировать константу, которая соответствует "чистой" задержке в1 микросекунду, т.е. взять не 0.8, а меньше. т.е. в моих опытах вместо 100-101-102 и т.п. задержек получалось примерно (десятые доли откидываю) 112-113-114 и т.д.
принцип, заложенный в мою функцию, работает - кто б сомневался?
битва с дураками проиграна, победители торжествуют. слава победителям!
Avarges, urry, тут мы письками меряемся
ну весело же!
не хотите принять участие, вдруг у вас больше? 
битва с дураками проиграна, победители торжествуют. слава победителям!
не уверен насчет письки Брезенхема, но алгоритм Брезенхема - посчитать точно время - сюда уверенно напрашивается и странно, что никто из вас это не сказал.
я человек темный
алгоритмов таких не знаю
поделитесь знаниями - буду и я умнее 
битва с дураками проиграна, победители торжествуют. слава победителям!
(наливаю себе из графина)
имхо, в микроконтроллерах Брезенхем имеет 3 применения
1 - рисование на экране окружностей (дуг) без вычисления синусов-косинусов
2 - равномерное распределение мощности сигнала на участке
3 - таймеры с 0 погрешностью (то, что доктор прописал для данного случая).
Если кто-то знает 4 применение, пусть дополнит.
ну а гугль знает усе.
имхо, в микроконтроллерах Брезенхем имеет 3 применения
1 - рисование на экране окружностей (дуг) без вычисления синусов-косинусов
2 - равномерное распределение мощности сигнала на участке
3 - таймеры с 0 погрешностью (то, что доктор прописал для данного случая).
Если кто-то знает 4 применение, пусть дополнит.
ну а гугль знает усе.


