Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

CodeVisionAVR 2.60

Непрочитано 30.01.2014, 14:09  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от olc0267 Посмотреть сообщение
Если я понял правильно тему спора, то я тогда не понял, о чём спор.

В отличии от вас, предыдущий любитель CV, хотя бы понимал "о чём спор".
А вам хочется пожелать работать с могучей штукой, и не заморачиваться. Не знаю как у кого, а у меня полностью пропало желание о чём либо говорить. ))

Шёл как-то вдоль речки. Видел сцену. Место возле больницы в посёлке.
Сидят двое мужиков на берегу. Один разливает портвейн по стаканам. Третий шляется в отдалении.
Первый кричит дальнему:
(П) - Мужиииик. Пить будешь?
(Д) - Аааа?
(П) - Пить говорю будешь?
(Д) - Чтооо?
Тут подключается второй, который разливает.
(В) - Иди домой!!!

Не обижайтесь, но хочется вас домой отправить... ))))
Реклама:
SasaVitebsk вне форума  
Непрочитано 30.01.2014, 16:34  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: CodeVisionAVR 2.60

Сообщение от SasaVitebsk Посмотреть сообщение
хочется вас домой отправить... ))))
Какой домой. Ещё с FFT не разобрались. Почему каждый раз разные значения времени выполнения.

Какие данные должен быть в результате?

Разные значения - оно понятно. Почему у автора получались одинаковые?
Godzilla82 вне форума  
Непрочитано 30.01.2014, 16:38  
olc0267
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.08.2008
Адрес: Ярославль
Сообщений: 1,504
Сказал спасибо: 115
Сказали Спасибо 1,314 раз(а) в 548 сообщении(ях)
olc0267 на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от SasaVitebsk Посмотреть сообщение
В отличии от вас, предыдущий любитель CV, хотя бы понимал "о чём спор".
Тогда почему так много страниц наплодили по поводу volatile?
Я всего лишь хотел показать, что в опциях компилятора можно включить или выключить необходимость применения volatile.
olc0267 вне форума  
Непрочитано 30.01.2014, 16:44  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от Godzilla82 Посмотреть сообщение
Потому, что WinAVR умный. Он оптимизирует программу. Смотрит, что переменная j нигде не используется, тело цикла пустое. И, скорее всего, выбрасывает весь цикл. Для этого попробуйте описать переменную j с квалификатором volatile или так:
Код:
void delay (int m)
{
int j;
for(j=0; j‹m; j++) {
 asm volatile ("nop");
 }
}
А зачем вам самому писать такие функции?
Иногда проще заставить компилятор делать "ничего". Без volatile, вы же его не любите...
Код:
void delay (int m){
   while( m-- ) continue;
}
По сути одно и то же, но писанины немного меньше.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 30.01.2014, 19:58  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от olc0267 Посмотреть сообщение
CV ... Могучая штука, позволяет сэкономить огромное количество времени,
Ага, особенно здорово он экономит время на выполнении циклов.
Могуч, мля, вонюч, мля, и волосат, мля.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 30.01.2014, 20:36  
olc0267
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.08.2008
Адрес: Ярославль
Сообщений: 1,504
Сказал спасибо: 115
Сказали Спасибо 1,314 раз(а) в 548 сообщении(ях)
olc0267 на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

А сыр-бор разгорелся из-за этого
https://kazus.run/forums/showpost.ph...8&postcount=30

Если все такие умные, то вместо того, чтобы говном друг в друга плеваться, объяснили бы человеку, что если глобальная переменная используется в обработчике прерывания, она не должна размещаться в регистре. Потому что если контроллер сохранит этот регистр в стек при входе в процедуру обработки прерывания, а при выходе восстановит сохранённые данные, то всё что делалось с этой переменной внутри обработчика, забудется.
Поэтому контроллеру надо напрямую указать - где хранить переменную. Или отключить ему возможность поумничать.

"The compiler will automatically save the affected registers when calling the interrupt functions and restore them back on exit." Это из хелпа к CV.
olc0267 вне форума  
Непрочитано 30.01.2014, 20:47  
olc0267
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.08.2008
Адрес: Ярославль
Сообщений: 1,504
Сказал спасибо: 115
Сказали Спасибо 1,314 раз(а) в 548 сообщении(ях)
olc0267 на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от tempora Посмотреть сообщение
Ага, особенно здорово он экономит время на выполнении циклов.
Могуч, мля, вонюч, мля, и волосат, мля.
Время контроллера он может расходовать как хочет, мне пофигу. Мне моё собственное время дороже. Мне нравится эта среда в первую очередь наличием готовых библиотек и автоматической генерацией кода. Естественно, если бы я был профессиональным программистом, я бы озаботился написанием своих собственных библиотек, а куски кода таскал из старых проектов. Но я всего лишь инженер-конструктор, надобность запрограммировать контроллер у меня возникает не чаще раза в год. Нафига мне эти головные боли? Тем более, что ещё ни разу не приходилось писать приложений, настолько критичных к ресурсам, чтобы высчитывать каждый байт или такт.
Так что CV для таких как я - форева!

ЗЫ. Впрочем, было как-то раз - надо было очень быстро обрабатывать сигнал от инкрементального энкодера. Но я только ассемблерный листинг вручную слегка подправил в небольшом куске программы, а остальное оставил как есть.

И вообще, я промышленные контроллеры в основном программирую. На Step7, CoDeSys и пр.

Последний раз редактировалось olc0267; 30.01.2014 в 20:58.
olc0267 вне форума  
Непрочитано 30.01.2014, 20:48  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от olc0267 Посмотреть сообщение
Если все такие умные, то вместо того, чтобы говном друг в друга плеваться, объяснили бы человеку,
Так наверное человеку не надо было лезть со своими советами если не понимает, а задать вопрос в песочнице .

Godzilla82,olc0267, я расцениваю Ваши посты как троллинг . Что будем делать ?
Мое предложение - перенести тему в соответствующий раздел ...
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 30.01.2014 в 20:51.
dosikus вне форума  
Непрочитано 30.01.2014, 20:52  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: CodeVisionAVR 2.60

Сообщение от olc0267 Посмотреть сообщение
А сыр-бор разгорелся из-за этого
https://kazus.run/forums/showpost.ph...8&postcount=30

Если все такие умные, то вместо того, чтобы говном друг в друга плеваться, объяснили бы человеку, что если глобальная переменная используется в обработчике прерывания, она не должна размещаться в регистре.
Приехали.

В том-то и дело, что в CV не важно, где она расположена.

А ошибка конкретно в 30 посте - это у него нет вечного цикла. Там при старте main() 1 раз делается проверка на текущий режим, и всё. Выходим из main().
Godzilla82 вне форума  
Непрочитано 30.01.2014, 21:49  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от olc0267 Посмотреть сообщение
Время контроллера он может расходовать как хочет, мне пофигу.
А прочитать внимательнее не пробовали?
Там цикл for(...i...) от 0 до 15, был выполнен один раз (для i=0). Если вам это по фигу, то зачем тогда вообще что-то писать? Контроллер и без указаний найдёт чем заняться.

_______________
PS
Сообщение от olc0267 Посмотреть сообщение
Мне нравится эта среда в первую очередь наличием готовых библиотек и автоматической генерацией кода.
По поводу библиотек и генератора кода - вы просто не понимаете о чём говорите, поскольку не пробовали ничего, кроме этой кислятины.
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 30.01.2014 в 21:55.
tempora вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CodeVisionAVR selevo Embedd С 11 26.02.2016 22:16
SD и CodeVisionAvr 2.04.4a sersne Микроконтроллеры, АЦП, память и т.д 29 24.03.2010 18:39
CodeVisionAVR V2.03.2 dimonbest Микроконтроллеры, АЦП, память и т.д 253 29.09.2009 22:37
New CodeVisionAVR 1.25.8 dimonbest Микроконтроллеры, АЦП, память и т.д 15 07.02.2008 12:56
Help CodeVisionAVR Serg79 Микроконтроллеры, АЦП, память и т.д 3 15.12.2005 23:32


Часовой пояс GMT +4, время: 02:19.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.